Moqを使用することで、モックを検証可能としてセットアップできるようになりました。ご存知のように、これは、テスト対象のコードが実際に依存関係のメソッドを呼び出していることを確認する場合に便利です。
例:Moq:
// Set up the Moq mock to be verified
mockDependency.Setup(x => x.SomethingImportantToKnow()).Verifiable("Darn, this did not get called.");
target = new ClassUnderTest(mockDependency);
// Act on the object under test, using the mock dependency
target.DoThingsThatShouldUseTheDependency();
// Verify the mock was called.
mockDependency.Verify();
私はVS2012の「FakesFramework」(より良い名前がわからないため)を使用してきましたが、これは非常に洗練されており、Moqよりも表現力があり、Shimsを簡単にするために好み始めています。ただし、MoqのVerizable/Verify実装と同様の動作を再現する方法がわかりません。StubsでInstanceObserverプロパティを見つけました。これは私が望むもののように聞こえますが、9/4/12の時点でドキュメントがなく、それが正しいかどうかさえわかりません。
誰かが私を正しい方向に向けて、VS2012の偽物でMoq検証可能/検証のようなことをすることができますか?
--9/5/12編集-
問題の解決策を見つけましたが、VS2012フェイクでそれを行うための組み込みの方法があるかどうかを知りたいです。可能であれば誰かが主張できるように、これは少し開いたままにしておきます。これが私が持っている基本的な考え方です(コンパイルされない場合はお詫びします)。
[TestClass]
public class ClassUnderTestTests
{
private class Arrangements
{
public ClassUnderTest Target;
public bool SomethingImportantToKnowWasCalled = false; // Create a flag!
public Arrangements()
{
var mockDependency = new Fakes.StubIDependency // Fakes sweetness.
{
SomethingImportantToKnow = () => { SomethingImportantToKnowWasCalled = true; } // Set the flag!
}
Target = new ClassUnderTest(mockDependency);
}
}
[TestMethod]
public void DoThingThatShouldUseTheDependency_Condition_Result()
{
// arrange
var arrangements = new Arrangements();
// act
arrangements.Target.DoThingThatShouldUseTheDependency();
// assert
Assert.IsTrue(arrangements.SomethingImportantToKnowWasCalled); // Voila!
}
}
-9/5/12編集終了-