在Moq中,给定对.Object的引用,是否可以操作原始模拟?

时间:2014-01-16 22:49:49

标签: c# mocking moq

我希望可以通过Moq中的扩展方法操作.Object作为模拟,但我没有找到任何适用的扩展方法。

例如:

interface IFoo
{
    void Bar();
}

/* ... */

var mock = Mock<IFoo>();
mock.Verify(x => x.Bar());

IFoo foo = mock.Object;
foo.Verify(x => x.Bar());   // this does not compile!

无论如何,我可以编写上面的代码(不编译的代码吗?)如果没有,为什么不呢?

1 个答案:

答案 0 :(得分:5)

您可能希望使用Mock.Get<T> 检索给定对象实例的模拟对象

Mock.Get(foo).Verify(x => x.Bar());