我尝试在Python版本的Mockito中使用verifyNoUnwantedInteractions()
,但是要么我对它应该做什么有错误的理解,要么它实际上不起作用。我认为会发生的事情是,它将检查是否存在与存根方法的未expect
的交互。但是,发生了以下情况:
这就过去了。我希望destroy()调用会引发异常,因为它没有被expect
ed
expect(maker, times=1).create().thenReturn(thing)
when(maker).destroy().thenReturn(thing)
maker.start() # Calls both create() and destroy()
verifyNoUnwantedInteractions(maker)
这不会通过,因为destroy()被调用了零次以上。verifyNoUnwantedInteractions()
不是必需的,因为它无论如何都会失败。你知道吗
expect(maker, times=1).create().thenReturn(thing)
expect(maker, times=0).destroy().thenReturn(thing)
when(maker).destroy().thenReturn(thing)
maker.start() # Calls both create() and destroy()
verifyNoUnwantedInteractions(maker)
到目前为止,在我看来verifyNoUnwantedInteractions()
是非常无用的,使用它的理由是什么,如何正确地使用它?你知道吗
verifyNoUnwantedInteractions
只检查expect
ed存根。通过when
创建的存根将被忽略。你知道吗现在我想这可以归结为
when
和expect
之间的区别。如果你这样做了您可以随时调用它,包括零次。在运行被测单元之后,您可以但肯定不必
verify
调用它多少次。这将与测试函数中抛出的任何其他断言一样,即当您验证时。你知道吗将其与
expect
进行比较,在expect
中预先设置了呼叫时间期望。你知道吗现在,您的被测代码可以准确地调用该方法一次,否则它将抛出被测代码。你知道吗
对于我们在示例中讨论的内容,
verifyNoUnwantedInteractions
将只检查maker.destroy()
是否被调用。你知道吗相关问题 更多 >
编程相关推荐