2009-11-24 70 views
2

任何人都可以向我解释如何验证嘲笑,如果你没有他们的Moq包装? MockFactory.Verify()不会。我希望能够明确验证嘲笑,并应该使用mockfactory创建嘲笑!请发送您的意见。如果你没有Moq包装,你可以验证一个模拟对象吗?

+0

给你想要的关键步骤,一个小样本做。他们会严格吗? “不会做”是什么意思?为什么它不够?或者它不适合你?是否VerifyAll有更多使用? – 2009-11-24 13:34:55

+0

当使用MocksFactory实现模拟时,我已经实现了其中的一部分,以便可选地使用布尔参数来指定是否将验证添加到某些方法的设置中,这会在调用mockFactory.Verify()时导致验证发生。我认为,如果我们在单元测试中直接在模拟对象上使用验证方法,而不是使用mockFactory,那么阅读单元测试更容易理解。我想知道如何做到这一点?任何帮助? – 2009-11-25 04:19:18

回答

4

如果您使用工厂创建您的模拟,并不意味着您必须使用它来验证它们。有时候我只用工厂设置MockBehavior在一个地方为我所有的嘲笑。但我仍然单独验证我的一些模拟。

var factory = new MockFactory(MockBehavior.Strict); 
var fooMock = factory.Create<IFoo>(); 

fooMock.Setup(foo => foo.Bar()); 

fooMock.Verify(foo => foo.Bar, Times.Once()); 

更新 在情况下,如果你只有在您的测试方法嘲笑的对象,就可以得到模拟包装背面是这样的:

IFoo foo = fooMock.Object; 

//... 

var fooMockAgain = Mock.Get(foo); 
+0

其实我有一个类,其中函数被写入使用mockfactory创建所需的模拟以及设置。这些函数只返回真实的对象,即mockedthing.object 因此,在主函数中,我只是调用这些函数来创建虚拟对象。所以在这里我似乎只能使用mockfactory进行验证。我想知道是否有其他方法。 – 2009-11-26 04:09:14

+0

我更新了答案。 – 2009-11-26 06:25:11

相关问题