WCFサービスアプリケーションのホスト(サーバー)側の単体デバックについてです。

クライアントアプリケーションを作成せずに単体テストするには、VisualStudioのツールである「WcfTestClient.exe」使用することになると思います。色々な引数を与えてテストすることができるので便利です。

「***.svc」のファイルを選択した状態でデバックの開始を行うと以下のようなツールが立ち上がります。
※ SVCファイルを選択してないとブラウザが立ち上がります(最後に対処法説明)・・・20180127_wcftestclient_1
①左ツリーのテストしたいメソッドをダブルクリックします。
②要求の引数の値フィールドに値を入れます。
③「起動」ボタンを押します。
④下の応答に結果が返ります。

通信の中身の確認

下にあるXMLタブを押すと、実際に通信で使用されてSOAPの内容が確認できます。20180127_wcftestclient_xml

XMLの確認で通信量などを把握できます。

引数が配列の場合


スポンサードリンク

20180127_wcftestclient_hairetu
”length=3”のように入力すると、3つの領域の配列を作成することができます。それぞれ配列の値も変えれます。

値の部分に"(null)"と入力すると、null(Nothing)を入れることもできます。異常系のテストを行うときもばっちり確認が出来そうです。

独自クラスデータも入力できるのが有難い

以下のように自分で定義したコントラクトもちゃんとテストできますよ。
    [DataContract]
    public class person
    {
        public enum E_BloodType
        {
            A,B,AB,O
        }
        E_BloodType bt;

        [DataMember]
        public E_BloodType BloodType
        {
            get { return bt; }
            set { bt = value; }
        }

        [DataMember]
        public string name { get; set; }

        [DataMember]
        public int age { get; set; }
    }

20180127_wcftestclient_myclass

プロパティシートのようにオブジェクトも入力可能です。

いちいちSVCファイルを選択するのが面倒な方へ

SVCファイルを選択せずにデバック実行すると、ブラウザ(IEやchrome)が立ち上がってきます。それは、ソリューションエクスプローラのPropertiesから、Webタブの開始動作が「現在のページ」になっているためです。

私は、いちいちSVCファイルの選択が面倒なので、WcfTestClient.exeを外部プログラムで起動するようにしています。

20180127_wcftestclient_startup

・「外部プログラムを起動する」を選択する
プログラムの場所:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\WcfTestClient.exe
コマンドライン引数:http://localhost:ポート番号/サービスファイル名.svc

私の環境は、上記のようになっていますがお使いの環境に合わせてください。
※ ポート番号は、IIS ExpressのプロジェクトURLを指定します。

これで、どのファイルが選択されていてもWcfTestClientが対象サービスで起動してきてくれます。
何気に別ファイルのソースコードを入力後、F5でデバック実行しちゃう私向けの内容です。