2012-02-27 13 views
1

MoqにはRhino Mocks .Do()メソッドがありますか?私は部品番号に私のRhinoのモックコードを変換していますし、次のように貼り付けています:MoqにはRhino Mocks .Do()メソッドと同等の機能がありますか?

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

これは(Rhinoのモックで同様の部品番号、中)と同じではありません。

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

GetSomething()がある場合にはユニットテストで複数回呼び出されると、最初のコードは常に新しいインスタンスを返します。 2番目の部分は常に同じインスタンスを返します。

私が望むのは、モックされたオブジェクト(Moq)が常に新しいインスタンスを返すことです。ですから、実際に私の模擬オブジェクトにGetSomething()メソッドの実装を提供したいと思います。

Using sequences私は何度もGetSomething()が呼び出されることはありませんし、私はこれに興味がありませんので、このトリックはしません。

答えて

2

あなたはRhinoのでやっているだけのよう.ReturnsFunc<SomeClass>を渡すことができるはずはモック:

mockedObject 
    .Setup(x => x.GetSomething()) 
    .Returns(() => new SomeClass()); 
関連する問題