1、使用框架来用于单元测试
一般用junit和spring test结合,可以使用Clover这些代码覆盖工具,提高测试质量。
2、尽可能将测试数据外部化
在@Before中初始化数据
在@After中做一些清理工作,释放连接等。
3、使用断言而不是Print语句
对功能的运行结果先进行预测,有助于理清自己的逻辑。
4、除了正面情景外,还要测试负面情景和边缘情况
出了严重功能的正确性,还要对一些异常情况进行测试,并完善处理。
5、不污染数据库
使用失误和回滚机制,保证测试代码不对数据库的数据进行更改。
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml" })@TransactionConfiguration(transactionManager = "transactionManager",defaultRollback = true)@Transactionalpublic class RuleDaoTest { @Autowired private RuleDao ruleDao; @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test @Rollback(true) public void insertRule() throws Exception { Rule rule = new Rule(); rule.setRuleName("rule2"); int i = ruleDao.insertRule(rule); System.out.println(i+" "+rule.getRuleId()); }}