spring项目的单元测试编写

1 单元测试

单元测试(Unit Testing),  即测试功能代码的预期行为和实际行为的差异, 是一种白盒测试。 可以快速的测试自己的程序, 提高代码质量; 也可以用来便捷地测试不熟悉的类库的行为, 熟悉类库。

使用eclipse的junit插件可以快速的建立单元测试:

 
最简单的例子:
   
   
  1. package athena.junit;
  2. import static org.junit.Assert.*;
  3. import org.junit.Test;
  4. public class UnitTest {
  5. @Test
  6. public void test() {
  7. String str = "abcde";
  8. String sub = str.substring(3, 5);
  9. assertEquals("de", sub);
  10. }
  11. }

@Test, 表示这是一段测试代码, 将由junit调用。
assertEquals是junit提供的测试方法, 第一个参数是期望的值, 第二个参数是实际的值, 如果两个参数不相等, 会抛出错误使测试失败; assertEquals有多个重载方法。

详细的单元测试知识可以参考: http://blog.csdn.net/zhangxin09/article/details/42418441

2 spring项目中的单元测试

好了, 该进入正题了,  我们的重点是在spring项目中进行单元测试。
spring的程序代码需要spring环境如 数据库、 DI(依赖注入)环境才可以正常运行, 所以要为单元测试代码加入执行环境注解, 让单元测试在预期的环境中运行。

简单的例子:
   
   
  1. package athena.section.service.impl;
  2. import static org.junit.Assert.*;
  3. import org.junit.Test;
  4. import org.junit.runner.RunWith;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.test.context.ContextConfiguration;
  7. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  8. import org.springframework.transaction.annotation.Transactional;
  9. @ContextConfiguration(locations = { "/spring-mvc.xml",
  10. "/spring-mybatis.xml","/spring-jms.xml", })
  11. @RunWith(SpringJUnit4ClassRunner.class)
  12. @Transactional
  13. public class DemoServiceImplTest {
  14. @Test
  15. public void testDbConnection() {
  16. //这样单元测试代码就可以做执行数据库等操作了
  17. }
  18. }


使用@ContextConfiguration和 @RunWith 注解配置spring的测试环境, @Transactional表示这个单元测试对数据的增加修改都会被回滚, 不会真正的影响数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值