我有一个RESTful webservice,它有rest层 - 服务层 - dao层。此服务会在不同情况下产生不同的结果集,例如客户的事件列表,具有特定事件类型的客户,没有事件的客户,没有客户等。
我正在为DAO层编写Junit测试用例。我想模拟数据库。我应该在单元测试用例中测试结果集(状态)还是应该测试结果集的行为?为不同的测试场景准备测试数据(结果集)并对它们进行断言是否有意义?
答案 0 :(得分:2)
只需验证您的行为即可。
如果你要嘲笑你的数据库 - 可能是这样,使用Mockito:
when(mockedDAO.getResults(onSomeParameters).thenReturn(yourStubbedReturnSet);
然后你会把你的DAO存根以返回一个煮熟的结果集,对于这个结果集,断言任何东西都没有价值。
因此,只需验证.getResults()是否使用您期望的参数调用DB。你的DAO应该不再做了,所以不应该再测试了。
哦......然后先写下你的测试:)你将更容易理解如何测试你的代码。