次の方法で共有


スキーマとマップを含む単体テスト機能の使用

このトピックでは、単体テスト機能を使用してスキーマとマップの単体テストを HelloWorld オーケストレーション サンプルに追加する方法を示します。

Note

現時点において、マップ用の単体テスト機能では、複数の入力マップはサポートされていません。

前提条件

最初に、HelloWorld サンプルの作成手順に従う必要があります。 これらの手順については、HelloWorld (BizTalk Server サンプル) を参照してください。

HelloWorld サンプルへの単体テスト プロジェクトの追加

  1. Visual Studio で、HelloWorld.sln ソリューション ファイルを開きます。

  2. ソリューション エクスプローラーで、HelloWorld プロジェクトを右クリックし、[プロパティ] をクリックします。

  3. [プロジェクト Designer] で、[配置プロパティ] ページ タブをクリックし、[単体テストを有効にする] を にTrue設定します。

  4. 変更内容を保存し、プロジェクト プロパティ ページを閉じます。

  5. [メイン] メニューの [ビルド] をクリックし、[ソリューションのリビルド] をクリックします。

  6. [メイン] メニューの [テスト] をクリックし、[新しいテスト] をクリックします。

  7. [新しいテストの追加] ダイアログ ボックスで、[テスト プロジェクトに追加] フィールドで [新しい Visual C# テスト プロジェクトを作成する] を選択します。 [テンプレート] ボックスの一覧で [単体テスト ウィザード] を選択し、[OK] をクリックします

  8. [ 新しいテスト プロジェクト ] ダイアログ ボックスで、プロジェクト名を TestProject1 のままにして、[ 作成] をクリックします。

  9. [単体テストの作成] ダイアログ ボックスで、型を展開し、Microsoft.Samples.BizTalk.HelloWorld.POSchema ノードの下にある POSchema() コンストラクターを選択します。 また、Microsoft.Samples.BizTalk.HelloWorld.POToInvoice ノードの下にある POToInvoice() コンストラクターも選択します。 次の図は、選択する要素を示しています。 次に示す選択を行った後、[ OK] を押します

    単体テストの作成] ダイアログ ボックスを示す画像。[

スキーマとマップをテストするテスト コードの追加

  1. [参照の追加] ダイアログの [.NET] タブから TestProject1 プロジェクトに次の参照を追加します。

    • Microsoft.BizTalk.TestTools

    • Microsoft XLANG/s ベース型

  2. ソリューション エクスプローラーで、POSchemaTest.cs を開きます。

  3. ファイルの一番下までスクロールし、 POSchemaConstructorTest メソッドを、サンプル PO 入力メッセージを検証する次のコードに置き換えます。

    [TestMethod()]
    public void POSchemaInstanceValidationTest()
    {
        POSchema target = new POSchema();
    
        //=== The SamplePOInput.xml file from <Samples Path>\Orchestrations\HelloWorld ===//
        string strSourcePO_XML = testContextInstance.TestDir + "..\\..\\..\\SamplePOInput.xml";
    
        //=== Validate the SamplePOInput message against the schema ===//
        Assert.IsTrue(target.ValidateInstance(strSourcePO_XML, Microsoft.BizTalk.TestTools.Schema.OutputInstanceType.XML));
    }
    
  4. ソリューション エクスプローラーで POToInvoiceTest.cs を開き、次のディレクティブをそのファイルの先頭に追加します。

    
    using System.IO;
    
  5. ファイルの一番下までスクロールし、 POToInvoiceConstructorTest メソッドを、サンプル PO 入力メッセージを使用してマップをテストする次のコードに置き換えます。

    
    [TestMethod()]
    public void POToInvoiceMapTest()
    {
        POToInvoice target = new POToInvoice();
    
        //=== Use the HelloWorld sample directory path for the message files ===//
    
        string strSourcePO_XML = testContextInstance.TestDir + "..\\..\\..\\SamplePOInput.xml";
        string strDestInvoice_XML = testContextInstance.TestDir + "..\\..\\..\\SampleInvoiceOutput.xml";
    
        //=== Test the map by using the TestMap method of the TestableMapBase class ===//
    
        target.ValidateOutput = true;
        target.TestMap(strSourcePO_XML,
                       Microsoft.BizTalk.TestTools.Schema.InputInstanceType.Xml,
                       strDestInvoice_XML,
                       Microsoft.BizTalk.TestTools.Schema.OutputInstanceType.XML);
    
        //=== Output file should be created as a result of testing the map ===//
    
        Assert.IsTrue(File.Exists(strDestInvoice_XML));
    }
    

単体テストのビルドと実行

  1. ソリューション エクスプローラーで、[TestProject1] を右クリックし、[ビルド] をクリックします。

  2. [メイン] メニューの [テスト] をクリックし、Windows の一覧で [テスト ビュー] をクリックします。

  3. [テスト ビュー] ウィンドウで、[ POSchemaInstanceValidationTest] を右クリックし、[ 選択項目の実行] をクリックします。 [テスト結果] ウィンドウに [合格 ] と表示されていることを確認します。

  4. [テスト ビュー] ウィンドウ で、[POToInvoiceMapTest] を右クリックし、[ 選択項目の実行] をクリックします。 [テスト結果] ウィンドウに [合格 ] と表示されていることを確認します。

  5. テストが不合格の場合、[テスト結果] ウィンドウのテストをダブルクリックして、不合格の原因となったアサートまたは例外を確認します。

テスト コードのまとめ

HelloWorld プロジェクトに対して単体テストが有効になっている場合、POSchema.xsd に関連付けられている C# クラスは、Microsoft.BizTalk.TestTools.Schema.TestableSchemaBase クラスから派生しました。 TestProject1の POSchemaInstanceValidationTest メソッドは、POSchema クラスの ValidateInstance メソッドを使用して、PO スキーマに対する SamplePOInput.xml を検証しました。

同様に、 HelloWorld プロジェクトに対して単体テストが有効になっている場合、 POToInvoice.btm マップに関連付けられている C# クラスは 、Microsoft.BizTalk.TestTools.Mapper.TestableMapBase クラスから派生しました。 POToInvoiceMaptest メソッドは、POToInvoice クラスの TestMap メソッドを使用して、同じ SamplePOInput.xml メッセージを使用してマップをテストしました。 これにより、SampleInvoiceOutput.xml が HelloWorld ディレクトリで作成されました。

参照

パイプラインでの単体テスト機能の使用単体テストの操作 (Visual Studio)