私はいくつかの WCF サービスに取り組んでおり、それらは Azure にデプロイされる予定です。そのため、統合テストの実行中にステージング領域への無駄なラウンドトリップを避けるために、できるだけ多くの単体テストをローカルで実行したいと考えています。サービスは CQRS パターンを使用し、次の方法ですべてを階層化しました。 - WCF サービスに依存関係を挿入するためのブートストラップ - 各サービス メソッドのコマンド - コマンドをインターセプトするコマンド ハンドラー これまでのところ、コマンドを完全に単体テストできます。 、ハンドラー、およびブートストラップ。私がまだ書く必要があるのは、このタイプのテストです:
[TestMethod]
public void Client_ReceiveValidCommand_WillExecute()
{
var factory = new ChannelFactory<IDomainWriteService>("*");
var service = factory.CreateChannel();
var expectedCommand = BuildAddUsersCommand();
service.AddUsers(expectedCommand);
}
問題は、このテスト が構成ファイルで有効なエンドポイントを装うことです。テスト フィットネスの開始中に IIS Express のようなものを開始し、チャネル ファクトリを IIS のこのインスタンスに接続する方法はありますか? サービスを展開して統合テストを実行できるステージング領域を作成できないため、可能な場合は単体テストの方法に従うことをお勧めします。