【发布时间】:2017-07-04 12:37:45
【问题描述】:
我正在尝试测试以下方法
public void saveToMultipleSources(MyObject myObject)
{
if (myObject.isOfSomeType()) {
firstDAO.saveObject(myObject);
myObject.setContent(null);
}
secondDAO.saveObject(myObject);
}
我写的测试是
@Test
public void testSaveFeature()
{
//initialize all objects
obj.saveToMultipleSources(myObject); //myObject has a valid content.
Mockito.verify(firstDAO).saveObject(myObject);
myObject.setContent(null);
Mockito.verify(secondDAO).saveObject(myObject);
}
但在运行时,我收到错误,即 firstDAO 的验证语句的预期参数和实际参数不同。预期是一个具有有效内容的对象,但调用的实际参数的内容设置为空。我也用 ArgumentCaptor 尝试了完全相同的方法,但得到了相同的结果。
有人能解释一下为什么 Mockito 会这样吗?我尝试记录整个对象,并且可以看到在调用 firstDAO 之前设置的有效内容。
另外,我该如何进行测试?
【问题讨论】:
标签: java unit-testing testing mockito