模拟复杂的返回类型

时间:2014-05-12 13:28:29

标签: java mockito powermock

我是powermock, mockito的新手,面临复杂返回类型的问题。 示例:假设需要模拟以下方法:

public someReturnType getMethod(param1, param2){
   ....
   ....
   return someMethod(param1);
}

我在嘲笑someMethod(param1)时遇到了一个问题。因为,在调用之前会有业务逻辑被执行,所以只更换这个返回调用的模拟就没有意义了。请指教。

1 个答案:

答案 0 :(得分:0)

因此,为了论证,somemethod(param1, param2)是一个服务类,您的测试和somemethod(param1)正在调用您的DAO访问您的数据库。因为在你的测试用例中,为什么要为测试数据库调整所有开销,等等,当你可以模拟它时。这使得您的测试用例更快更容易编写,因为您测试类本身而不是它访问的下面的类。但是你想验证它确实被Mockito.verify(mockSomeMethod, Mockito.times(1)).someMethod(Mockito.eq(param1));

调用了

或它永远不会被Mockito.never()调用代替Mockito.times(count)这个想法是测试你的测试类中的业务逻辑,而不是只需要设置业务逻辑下的所有内容有效的返回值。