次の方法で共有


XML 構成ファイルを使用したテストの定義

BizUnit には、XML 構成ファイルと Excel ワークシートの 2 つの方法でテストを定義できます。 このトピックでは、XML 構成ファイルを使用してテストを定義することに重点を置いています。ただし、Excel を使用して BizUnit テスト ケースを定義する方法の興味深い例が提供されるため、BizUnit SDK も参照する必要があります。 さらに、BizUnit テスト ケースを迅速に作成できる GUI を提供する BizUnit デザイナー ツールを調査することもできます。 このトピックでは、非常に簡略化されたシナリオを使用して XML 構成を使用してテスト ケースを定義する方法の概要について説明します。

XML 構成を使用した BizUnit テスト ケースの定義の概要

前述のように、このシナリオは説明のために簡略化されています。 次に示すようなサンプル メッセージング アプリケーションについて考えてみましょう。 このアプリケーションの通常の機能動作は、BizTalk がファイル受信場所を介して XML ファイルを受信し、サブスクリプションに基づいて適切なサブスクライバーに送信すると仮定します。 このシナリオを効果的に検証するには、テストで次の手順を実行することが重要です。

  1. 環境が一貫した状態であり、テストを実行する準備が整っていることを確認するように環境を設定します。

    • これは、使用されている 2 つのファイルの場所に存在するすべてのファイルを削除することによって行われます。
  2. テストを実行して機能を確認します。

    • ファイルが場所のポーリングを受信するフォルダーに有効な XML メッセージを作成します。

    • 正しい XML メッセージが送信フォルダーの場所に配置されていることを確認します。

    • 検証では、メッセージのスキーマとペイロード情報の両方をカバーする必要があります。 (通常、いくつかの主要なフィールドを調べる必要があります)。

  3. 環境をクリーンアップして、テストを実行する前と同じ状態になるようにします。

    • 使用されている 2 つのファイルの場所に存在するすべてのファイルを削除します。

    BizTalk Messaging Application のサンプル
    BizTalk メッセージング アプリケーションのサンプル

    各テスト ケースは、TestCase XML タグで始まり、終了します。testName パラメーターは、次に示すようにこのパラメーターに渡されます。

<TestCase testName="Test_01_FILECopyWithXmlValidation">  

次に、TestSetup フェーズに入り、テストを実行するために環境が一貫した状態であることを確認します。 この例では、TestData ディレクトリに含まれている XML メッセージをすべて削除します。 これは FileDeleteMultipleStep を使用して行われます。

<TestSetup>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
      <Directory>..\..\..\TestData\</Directory>  
         <SearchPattern>*.xml</SearchPattern>   
      </TestStep>  
</TestSetup>  

次に、テストの最も重要なセクションであるテスト実行ステージを入力します。 このステージには、複数のテスト ステップを含めることができます。 この例では、FileCreateStep を使用して、ドキュメント ( <SourcePath> タグに表示できるInDoc1.xml) を、受信場所で使用されるファイル ドロップにコピーします。 この手順では、BizUnit ではファイル名の一意識別子の使用がサポートされていることに注意してください。これは、CreationPath タグの %Guid% 参照で確認できます。

これが完了したら、 FileValidateStep を使用して送信メッセージが作成されたことを検証する必要があります。 この手順では、タイムアウト値 (ミリ秒単位)、ディレクトリ、および検索パターンを指定できます。 これに加えて、 DeleteFile タグを使用すると、検証後にファイルを削除するかどうかを指定できます。 最後に、検証に XPath クエリが含まれていることにも注意してください。これは、XML メッセージ内の PONumber ノードを検証します (値がPONumber_0されていることを確認します)。送信メッセージのペイロードの検査と検証は、BizUnit を使用するときに従う必要がある基本原則のもう 1 つの例です。

<TestExecution>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileCreateStep">  
      <SourcePath>..\..\..\TestData\InDoc1.xml</SourcePath>  
      <CreationPath>..\..\..\Rec_03\TransactionId_%Guid%.xml</CreationPath>  
   </TestStep>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileValidateStep">  
      <Timeout>3000</Timeout>  
      <Directory>..\..\..\Rec_03\</Directory>  
      <SearchPattern>TransactionId_*.xml</SearchPattern>  
      <DeleteFile>true</DeleteFile>  
      <ValidationStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.XmlValidationStep">  
         <XmlSchemaPath>..\..\..\TestData\PurchaseOrder.xsd</XmlSchemaPath>  
         <XmlSchemaNameSpace>http://SendMail.PurchaseOrder</XmlSchemaNameSpace>  
         <XPathList>  
            <XPathValidation query="/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']">PONumber_0</XPathValidation>  
         </XPathList>  
      </ValidationStep>  
   </TestStep>  
</TestExecution>  

テスト ケースの最後のステージはクリーンアップです。 ここでわかるように、 FileDelete テスト ステップは、テストで使用されるディレクトリをクリーンアップするために使用されます。

<TestCleanup>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
      <Directory>..\..\..\TestData\</Directory>  
      <SearchPattern>*.xml</SearchPattern>   
   </TestStep>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
      <Directory>..\..\..\Rec_03\</Directory>  
      <SearchPattern>*.xml</SearchPattern>   
   </TestStep>  
</TestCleanup>  

この例は、BizUnit でのテストの定義が比較的簡単であり、このテスト フレームワークを使用することで、アプリケーションの機能テストを提供するテスト ケースを迅速に開発できることを示しています。

完全なテストケースの例

完全なテスト ケース構成ファイルの内容は、参照用にここに含まれています。

<TestCase testName="Test_01_FILECopyWithXmlValidation">  
   <TestSetup>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
         <Directory>..\..\..\TestData\</Directory>  
            <SearchPattern>*.xml</SearchPattern>   
         </TestStep>  
   </TestSetup>  
   <TestExecution>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileCreateStep">  
         <SourcePath>..\..\..\TestData\InDoc1.xml</SourcePath>  
         <CreationPath>..\..\..\Rec_03\TransactionId_%Guid%.xml</CreationPath>  
      </TestStep>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileValidateStep">  
         <Timeout>3000</Timeout>  
         <Directory>..\..\..\Rec_03\</Directory>  
         <SearchPattern>TransactionId_*.xml</SearchPattern>  
         <DeleteFile>true</DeleteFile>  
         <ValidationStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.XmlValidationStep">  
            <XmlSchemaPath>..\..\..\TestData\PurchaseOrder.xsd</XmlSchemaPath>  
            <XmlSchemaNameSpace>http://SendMail.PurchaseOrder</XmlSchemaNameSpace>  
            <XPathList>  
               <XPathValidation query="/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']">PONumber_0</XPathValidation>  
            </XPathList>  
         </ValidationStep>  
      </TestStep>  
   </TestExecution>  
   <!-- Test cleanup: test cases should always leave the system in the state they found it -->  
   <TestCleanup>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
         <Directory>..\..\..\TestData\</Directory>  
         <SearchPattern>*.xml</SearchPattern>   
      </TestStep>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
         <Directory>..\..\..\Rec_03\</Directory>  
         <SearchPattern>*.xml</SearchPattern>   
      </TestStep>  
   </TestCleanup>  
</TestCase>  

こちらもご覧ください

BizUnit を使用した自動テストの容易化