Java 测试方法时,进行模拟的正确方法是什么?
我刚刚使用mock,特别是jMock(用于java)。我以前做过一些测试,但没有使用mock,我想知道制作它们的正确方法是什么 例如,我有一个带有实现的服务。。所以,我有这个服务测试。在服务器测试中,我有自己的方法 假设我在Java 测试方法时,进行模拟的正确方法是什么?,java,unit-testing,mocking,Java,Unit Testing,Mocking,我刚刚使用mock,特别是jMock(用于java)。我以前做过一些测试,但没有使用mock,我想知道制作它们的正确方法是什么 例如,我有一个带有实现的服务。。所以,我有这个服务测试。在服务器测试中,我有自己的方法 假设我在servicehelopertest上有methodA,作为methodA的一部分,我有这个 ArrayList someValues = serviceHelperImpl.otherMethod 因此,据我所知,我应该模拟这个serviceheloperimpl.oth
servicehelopertest
上有methodA
,作为methodA
的一部分,我有这个
ArrayList someValues = serviceHelperImpl.otherMethod
因此,据我所知,我应该模拟这个serviceheloperimpl.othermethod
,因为我并不在乎它是否好,它应该返回一些值
那么,假设我期望一个布尔值,有可能这样做吗
public myMethodToTest(){
mockery.checking(new Expectations() {
{
oneOf(serviceHelper).otherMethod();
will(returnValue(true));
}
});
Boolean myVar = serviceHelper.otherMethod();
...
}
我不知道这是否正确。。。知道应该如何在测试单元上实现mock吗?我不太清楚为什么要保存serviceheloper.otherMethod()的返回值
如果这是为了测试otherMethod
您应该只调用serviceheloper.otherMethod()代码>无需将返回值保存在变量中。记住,模拟测试是检查函数的“状态”,而不是结果。如果要检查结果,应该使用xUnit测试 你的解释令人困惑。methodA或serviceHelperImpl在哪里?你能给出一个完整的例子吗?我不确定你是在问实践问题(应该如何使用模拟)还是在问实现问题(在这种情况下我如何使用模拟)。如果是前者,也许看看吧。如果是后者,那么您需要问一个更具体的问题,并接受答案将根据模拟框架的不同而变化。