我只需要知道:
1)当我在Mockito中调用when()
时,它是否实际执行了mockedObject方法的行为?
2)如果我在when().thenReturn()
中返回错误的值,像下面这样。测试用例会是“false”,还是会返回50而不是30?
when(mockedObject.add(10,20)).thenReturn(50);
3) 即使被模拟对象的方法是void类型,为什么我需要强制使用thenReturn()
?(如果我不使用thenReturn()
会报错。)
使用when()
方法可以对模拟对象添加功能。
@Test
public void testAdd(){
when(mockedObject.add(20.0,30.0)).thenReturn(50.00);
}
4) 如果我调用
verify(mockedObject,times(1)).add(20.0, 30.0);
它检查方法是否在模拟对象上调用,参数相同,并将方法调用仅限于1次,对吗?那么,我可以使用when()向模拟对象方法添加功能而不使用verify()吗,还是需要在调用when()方法后调用verify()呢?
Mockito Exception: Wanted But Not Invoked
非常有帮助。这让我意识到在调用被测试系统之前,在我的ACT阶段中我正在调用Mockito.verify(mock).method(argCapture)。请确保只在触发执行后的assert阶段使用verify!希望这能帮到你。 - undefined