4

VS2012 に WCF アプリケーションがあります。単体テストを行うためのテスト プロジェクトも追加しました。これはすべてうまくいっています

これに加えて、システム テストを行うための別のテスト プロジェクトを追加する必要があります。ここでの考え方は、Web サービスが開始され、テスト プロジェクトが Http 要求を起動するというものです。いる環境です。

組み込みのビジュアルスタジオテストを使用してこれを行う方法が実際にあるかどうかはわかりません。通常のテスト クラスを追加すると、Web サービスを実行する Web サイトが起動せず、テストが失敗します。

私が実行しようとしているコードは次のようなものです:

[TestMethod]
public void CreateLogin()
{
    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri("http://localhost:61886/");          
    HttpResponseMessage response =          
       client.GetAsync("ssoauthenticationservice/createssologin").Result;
}

ここで非常に明白な何かが欠けているように感じます。だから私の質問は:

1) この方法で Web サービスをテストできますか? プロジェクトのプロパティを設定して、最初に Web サービスを開始し、次にテスト プロジェクトを実行する方法はありますか?

または:
2)このアプローチは完全に間違っていますか?実際にすべきことは、展開後の簡単なスモークテストとして展開する環境で実行できる実行可能ファイルにテストを配置することです。

4

1 に答える 1

1

この方法を使用すると、wcf サービスを確実にテストできます。良いかどうかはあなたの見方次第です。また、ビジネスの実装が .svc コード ビハインドと密接に結合されているかどうかにも依存します。

これを行うには、ほとんどの場合、TestInitialize または ClassInitialize でサービス ホストを作成し、テストの実行後に破棄する必要があります。

セルフ ホスティングの詳細については、http://msdn.microsoft.com/en-us/library/ms731758.aspxをご覧ください。

この方法がどれだけうまく機能するかは、単体テストが実行される環境に依存することにも注意してください。ローカル マシンからはうまく機能しますが、管理者権限が必要です。このため、この方法を継続的インテグレーション環境で使用することはお勧めできません。

于 2013-10-24T02:37:35.783 に答える