9

Visual Studio 11 で Microsoft Fakes のベータ版を使用しています。依存関係のメソッドがテスト対象のシステムによって呼び出されたことを確認するにはどうすればよいですか?

4

3 に答える 3

13

Microsoft Fakes Beta には検証機能が含まれていないため、以下のコードは、依存関係のメソッドが呼び出されたかどうかの基本的なテストです。trueテストを拡張して、パラメーター値または適切な呼び出しのその他の条件をテストできます。

テスト:

[TestMethod]
public void TestMethod1()
{
    var secondDoItCalled = false;
    var secondStub = new Fakes.ShimSecond();
    secondStub.DoIt = () => { secondDoItCalled = true; };
    var first = new First(secondStub);
    first.DoIt();
    Assert.IsTrue(secondDoItCalled);
}

クラス:

public class First
{
    readonly Second _second;
    public First(Second second) { _second = second; }
    public void DoIt() { 
        //_second.DoIt();
    }
}

public class Second {public void DoIt(){}}

上記の行のコメントを外して、テスト パスを確認します。

于 2012-04-30T20:52:34.473 に答える
9

Microsoft Fakesフレームワークで動作検証を行うためのもう1つのオプションは、Microsoft.QualityTools.Testing.Fakes.Stubs名前空間に含まれているStubObserverクラスを使用することです。フレームワークを使用して、依存関係のスタブを生成します。次に、スタブで、InstanceObserverプロパティを新しいStubObserverに設定できます。StubObserverクラスを使用すると、依存関係に対して行われたメソッド呼び出しを「照会」できます。テスト方法は次のようになります

//Arrange
var dependency = new StubIDependency { InstanceObserver = new StubObserver() };
var sut = new SystemClass(dependency);

// Act
sut.DoSomething();

// Assert
var observer = (StubObserver)dependency.InstanceObserver;      
Assert.IsTrue(
    observer.GetCalls().Any(call => call.StubbedMethod.Name == "DoSomething"));
于 2012-12-10T04:12:02.437 に答える
4

この投稿をご覧ください: http://www.peterprovost.org/blog/2012/11/29/visual-studio-2012-fakes-part-3/

乾杯

于 2013-03-12T05:15:44.040 に答える