2

私は、WCF サービス プロジェクトを呼び出すクラス ライブラリ プロジェクトを呼び出すテストを含むテスト プロジェクトを含む Visual Studio 2012 ソリューションを持っています (これはステータスの簡単な要約であり、実際のソリューションはより複雑です)。

テスト エクスプローラーで [選択したテストのデバッグ] をクリックするとテストは成功しますが、[選択したテストの実行] をクリックするとサービスがホストされていないため失敗します。

コード カバレッジを確認したいのですが、コード カバレッジはテストを「実行」します。つまり、サービスがホストされず、テストが失敗し、コード カバレッジが 0% になります。

テストの「実行」時とテストの「デバッグ」時にサービスがホストされるように、テスト プロセスを構成するにはどうすればよいですか?

補遺

検討の結果、サービスを嘲笑しても目的は達成されないと思います。さまざまなコンポーネントは、モックを使用して個別にテストされていますが、それらがどのように連携して動作するかを確認するためにテストする必要があります。

4

1 に答える 1

2

それらは外部依存関係があるため (別の例はデータベース呼び出しです)、単体テストではありません。テストに合格するために Web サービスが稼働していることに依存しています。これは保証ではありません。

ここではモッキング フレームワークを使用することをお勧めします。私は Rhino Mocks を使用していますが、世の中にはたくさんあります。そうすれば、Web サービスをモックすることで、Web サービスへの依存を回避できます。

さらに、可能であれば、呼び出しているクラスライブラリをリファクタリングし、呼び出しなどを分離して、部分を分離してテストできるようにすることを検討します。

于 2013-08-01T09:32:40.797 に答える