我希望可以通过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!
无论如何,我是否可以像上一行那样编写代码(不编译的代码?)。如果没有,为什么不呢?
最佳答案
您可能想使用Mock.Get<T>
,它为给定的对象实例检索模拟对象:
Mock.Get(foo).Verify(x => x.Bar());