我试图了解Exactly Verify或VerifyAll的作用?
我正在搜索并获得有关使用MOQ的以下信息
Arrange
Mock
Set up expectations for dependencies
Set up expected results
Create class under test
Act
Invoke method under test
Assert
Assert actual results match expected results
Verify that expectations were met
那么验证到底是什么?我可以使用Assert测试所有内容,如果有任何故障,单元测试将失败?
验证哪些额外的工作?它是Assert的替代品吗?
更多澄清会让我明白。
谢谢
答案 0 :(得分:7)
Assert用于检查被测试的类/对象/主题(SUT)。 验证用于检查SUT的协作者是否已得到通知或联系。
所以,如果你正在测试一个汽车对象,它有一个引擎作为协作者/依赖者。 在调用car.PushStart()后,您将使用Assert来查看car.IsHumming 您可以使用Verify查看_mockEngine.Ignition()是否收到了呼叫。
方法一:
方法二
因此,如果您对Mock有多个操作,或者如果您需要使用模拟方法返回将要处理的值,那么Setup + Act + VerifyAll就是要走的路
如果您要检查一些通知,则验证更容易。