2012-02-27 58 views
1

Moq中是否有等效的Rhino Mocks .Do()方法?我將我的犀牛嘲笑碼起訂量,和我堅持以下幾點:Moq中是否有等效的Rhino Mocks .Do()方法?

mockedObject 
    .Expect(x => x.GetSomething()) 
    .Do((Func<SomeClass>)(() => new SomeClass()); 

這是不一樣的(以起訂量,類似於犀牛嘲笑):

mockedObject 
    .Setup(x => x.GetSomething()) 
    .Return(new SomeClass()); 

GetSomething()是在你的單元測試中多次調用,第一段代碼將總是返回一個新的實例。第二部分將始終返回相同的實例。

我想要的是我的嘲弄的對象(與Moq)總是返回一個新的實例。所以我實際上想要爲我的模擬對象提供GetSomething()方法的實現。

Using sequences不會伎倆,因爲我不知道GetSomething()會被調用多少次,我也不會對此感興趣。

回答

2

您應該能夠通過.Returns一個Func<SomeClass>就像你與犀牛嘲笑做:

mockedObject 
    .Setup(x => x.GetSomething()) 
    .Returns(() => new SomeClass());