私は現在、Moqフレームワークを使用してユニットテストを作成し、依存関係をモックしています。Alter Mock <IType>オブジェクトの後に.Objectプロパティが呼び出されました
traceProviderMock.Setup(x => x.GetTracer(It.IsAny<string>())).Returns("tracer");
:私はもう少し私は再びモックオブジェクトにSetup
を呼び出すモックの振る舞いを変更するにはしかし、後に
Mock<ITraceProvider> traceProviderMock = new Mock<ITraceProvider>();
traceProviderMock.Setup(x => x.GetTraceContext(It.IsAny<string>())).Returns("test");
ITraceProvider traceObj = traceProviderMock.Object;
:これを行うことで、私はそうのようなモックを作成しました今度はtraceProviderMock.Object
と呼ぶことなく、新しい模擬行動はtraceObj
に反映されますか?それが私の場合になりたいことです。
これは、Verify()
メソッドでは間違いなく動作しますが、Setup
メソッドでは表示されません。
私がこれをやりたい理由は、模擬依存関係を使ってTest Setupメソッドで完全な依存グラフを作ったからです。私はちょうど私の特定のテストのための嘲笑された依存の1つの振舞いを変えたいと思う。後続のテストでは、偽の依存関係に独自のスペシャライゼーションも適用されます。
テストセットアップメソッドで 'GetTracer'メソッドが設定されていますか? –
いいえ、特定のテスト方法でセットアップされています。それが理にかなっているのであれば、Mockに対するテスト固有の特殊化です。 –
私はこれをテストし、それは私のために働いた。 'traceProviderMock'からオブジェクトを取得した後に' GetTracer'メソッドを設定し、期待値を返しました。アサーションが正しく設定されていることを確認してください。デバッガのコードをステップ実行することはできますか? –