ChannelFactoryを使用した単体テストWCF

私はいくつかのWCFサービスに取り組んでおり、それらはAzureに配備されるので、私たちが統合テストを実行している間、ステージングエリアへの無駄なラウンドトリップを避けるために、私はローカルでできるだけの単体テストを達成しようとします。 サービスはCQRSパターンを使用しており、次のようにすべてを階層化しています。 - WCFサービスへの依存性を注入するためのブートストラップ - 各サービスメソッドのコマンド - コマンドをインターセプトするコマンドハンドラ これまでは、コマンド、ハンドラ、ブートストラップを完全にユニットテストすることができます。私がまだ書く必要があるのは、このタイプのテストです:

[TestMethod]
public void Client_ReceiveValidCommand_WillExecute()
{
    var factory = new ChannelFactory("*");
    var service = factory.CreateChannel();
    var expectedCommand = BuildAddUsersCommand();
    service.AddUsers(expectedCommand);
}

問題は、このテストが構成ファイル内の有効なエンドポイントをふりかえすということです。 私のテストのフィットネスが始まってから、IISのこのインスタンスにチャネルファクトリを接続して、IIS Expressのようなものを起動できる方法はありますか? 私はサービスを展開して統合テストを実行できるステージングエリアを作成することはできません。可能であれば単体テスト方法に従うことを好むでしょう。

0
nl ru de

1 答え

私はここで興味深い記事を見つけました: http://www.reimers.dk/jacob-reimers-blog/testing-your-web-application-with-iis-express-and-unit-tests で、あなたのユニットテストでIIS express とあなたのテストを IIS express で実行してください。 このようにして、IISの新しいインスタンスを作成し、WCFサービスをホストし、単体テストを実行し、最後にすべてを破棄することができます。

0
追加された