2014-01-16 40 views
0

我希望能夠通過Moq中的擴展方法來操作.Object作爲模擬,但我還沒有找到任何可用的擴展方法。在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! 

反正是有,我可以在上面(的一個不編譯?)行寫代碼就像如果不是,爲什麼不呢?

+0

它怎麼編譯? IFoo沒有驗證方法 – MikeSW

+0

@MikeSW - 可能通過一些擴展方法? Rhino Mocks允許它... – beluchin

+0

你有擴展方法'驗證'嗎? – MikeSW

回答

4

你可能想使用Mock.Get<T>獲取模擬對象爲給定對象實例

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

正是我所需要的。謝謝! – beluchin

相關問題