我是单元测试的新手。我想知道如何使用mockito框架来模拟数据库。我厌倦了寻找。请帮帮我。
答案 0 :(得分:2)
您不会嘲笑数据库'正如你所说。模拟框架的目的如下:
想象一下,您有一个名为myMethod()
的方法,该方法调用您信任的第三方方法,因此未进行测试。
你告诉模仿框架:
myMethod()
使用参数x和y调用thirdPartMethod1()
时,它将返回z myMethod()
将分别使用参数a,b,c,d调用thirdPartyMethod2()
4次。如果没有,请通过测试。因此,模拟框架本身将取代第三方方法,并在设置时返回它所告知的内容,例如:当myMethod()
调用thirdPartMethod1()
时,它会返回预期结果。
它还会检查调用是否符合预期,例如使用正确的参数确实将thirdPartyMethod2()
称为正确的次数。
因此,当您模拟数据库调用时,您不真正调用数据库。例如,您可以告诉Mockito基于JDBC ResultSet接口创建一个模拟器,并告诉它在使用某些参数调用时要返回什么,以及调用它上面的方法的次数以及调用方法的参数。实际数据库和真正的JDBC实现根本没有涉及。
如果您真的必须使用数据库,请考虑DBUnit