「プロセス外アセンブリ」のテスト経験がある人はいますか?プロセス外でアクティブ化するように構成されたいくつかのCom+(サービスコンポーネント)およびWCFサービスをテストしていますが、これらの状況でテストするためのベストプラクティスがわかりません。
私が行ったことは、パブリッククラスに、アクティブ化時に構築できる独自のIOCコンテナを与えたことです。これは正常に機能しますが、2つの理由でユニットテストを試みるとすぐに問題が発生します...
単体テストは別のプロセスで実行されているため、挿入する依存関係オブジェクトはシリアル化可能である必要があります。追加のモジュール(ninject)をcom + kernel / iocコンテナーにロードしたい場合は、シリアル化できるように独自のモジュールを作成する必要があります。テストを行うためだけにシリアル化できるようにするのは気が進まない。
アウトプロセスアセンブリはGACにインストールする必要があり、Com+の場合は登録する必要があります。テストする前にインストールする必要があるため、テストは面倒です。
現時点では、これにアプローチする方法は2つしか考えられません。
アセンブリを処理中に実行するように構成を変更したテストを実行するための別の作業コピーを用意します。明らかに、これは理想的ではありません。テスト可能にするためだけにコードを変更しているからです。機能的な変更がないので、これで生きることができましたが。
単体テストをCom+またはWCFコンポーネントから継承して、テストを同じプロセス境界で実行できるようにします。(これには、ユニットテストをGACにインストールする必要があります)