单元测试,我在公司Web团队的分享


一、单元测试的意义

1.质量

2.效率

(短期和长远都值得)
写单元测试代码,总的来说其实是更节省开发时间,更保证质量的。Controller、Service、Dao其实都可以进行测试。
 通过启动 Tomcat,打开web系统,登录,点击,输入 等进行功能测试,很费时间。
单单是Tomcat启动1次,时间通常在30s+。

对于未来重构,也方便测试。


问题:浪费时间??

二、单元测试的标准流程 

1.构造数据:对于add、remove、Delete、update 容易构造。 list search page难构造?
2.执行操作: add、remove等
3.断言: assert
4.删除数据:手动delete 或 回滚

如何删除数据?回滚?

继承AbstractTransactionalSpringContextTests?
比较详尽的帖子:http://tieba.baidu.com/p/2355323012

注意~扩展SPRING的AbstractTransactionalJUnit4SpringContextTests的测试单元~为了保持数据的清洁会自动回滚。
 
所以测试的数据无法真正插入数据库(例如你用spring配置的entityManager或者hibernatesession都无法在测试单元中真正插入数据)。
 
解决方法~如果不需要测试回滚,在测试单元上加入注释@Rollback(false)~


待测试??

三、单元测试的方法(Spring+Junit)

1.基于注解

2.基于配置

(MockMVC,Spring3.2.3-test新增)

原文地址:https://www.cnblogs.com/qitian1/p/6463668.html