繁体   English   中英

MOQ单元测试-声明与验证

[英]MOQ Unit Test - Assert Vs Verify

我是否在试图确切地了解Verify或VerifyAll的作用?

我正在搜索,并且得到了以下有关使用最小起订量的信息

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的替代品吗?

一些进一步的澄清会使我理解。

谢谢

声明与模拟

声明用于对类/对象/被测对象(SUT)进行检查。 验证用于检查是否已通知或联系了SUT的协作者。

因此,如果您要测试具有引擎作为协作者/依赖项的汽车对象。 在调用car.PushStart()之后,您将使用Assert来查看car.IsHumming是否可用。使用Verify来查看_mockEngine.Ignition()是否收到了调用。

验证与verifyAll

方法一:

  1. 明确设置您希望在后续“操作”步骤中在模拟的协作者上触发的所有操作
  2. 行动-做一些会导致操作被触发的事情
  3. 调用_mock.VerifyAll():验证您在(1)中设置的所有期望

方法二

  1. 行动-做一些会导致操作被触发的事情
  2. 调用_mock.Verify(m => m.Operation):验证实际上已调用Operation。 每次验证呼叫一个验证电话。 它还允许您检查呼叫计数,例如准确地检查一次等。

因此,如果您在Mock上执行了多项操作,或者需要模拟方法返回将要处理的值,则可以使用Setup + Act + verifyAll

如果您有一些要检查的通知,则“验证”会更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM