Verifiable()
的用途是什么
如果我验证了一个Mock
并省略了这一点,它仍然会验证该SetUp
。
编辑:我使用的是VerifyAll()
,这就是所有东西都被验证的原因。切换到Verify()
后,仅检查了我的.Verifiable()
SetUp
。
发布于 2009-11-13 18:49:32
附录:正如其他答案所述,.Verifiable
的目的是将Setup
登记到一组“延迟Verify(...)
调用”中,然后可以通过mock.Verify()
触发这些调用。
OP的澄清清楚地表明,这是目标,唯一的问题是找出为什么它不工作,但正如@Liam敦促的那样,答案也应该涉及到这一点:-据我所知,关键用例是:
mock.Setup()
之间维护验证,将验证的配置与实际的Verify
调用本身断开(例如,您可以在另一个辅助方法中设置它)..。回到我的回答,它简洁而有效地说:“要小心,因为实现这些目标对过于依赖这些结构的测试的易读性和可维护性的影响通常被认为超过了上面的优点”。
原始:请注意,在可能的情况下,应该遵循AAA布局,因此应该尽可能使用doing explicit mock.Verify( expression )
calls after the work has been done, rather than a mock.Setup( ... ).Verifiable()
paired with a mock.Verify()
or mock.VerifyAll()
(来源:@kzu)。
发布于 2009-06-11 11:33:40
当在测试结束时调用Verify()
方法时,如果任何标记为可验证的期望都没有被调用,那么异常是thrown
。
VerifyAll()
不检查可验证的期望值。
https://stackoverflow.com/questions/980554
复制相似问题