Partager via


Utilisation de la fonctionnalité de test unitaire avec les schémas et mappages

Cette rubrique décrit l'utilisation de la fonctionnalité de test unitaire en vue d'ajouter un test unitaire pour les schémas et le mappage dans l'exemple d'orchestration HelloWorld.

Notes

À l'heure actuelle, la fonctionnalité de test unitaire pour les mappages ne prend pas en charge plusieurs mappages d'entrée.

Prérequis

Vous devez commencer par suivre la procédure de génération de l'exemple HelloWorld Vous trouverez ces étapes ici : HelloWorld (exemple BizTalk Server)

Ajout d'un projet de test unitaire à l'exemple HelloWorld

  1. Dans Visual Studio, ouvrez le fichier de solution HelloWorld.sln.

  2. Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet HelloWorld, puis cliquez sur Propriétés.

  3. Dans Project Designer, cliquez sur l’onglet de la page de propriétés Déploiement et définissez Activer les tests unitaires sur True.

  4. Fermez la page des propriétés du projet en enregistrant les modifications.

  5. Dans main menu, cliquez sur Générer, puis sur Reconstruire la solution.

  6. Dans le menu main, cliquez sur Test, puis sur Nouveau test.

  7. Dans la boîte de dialogue Ajouter un nouveau test , sélectionnez Créer un projet de test Visual C# pour le champ Ajouter au projet de test . Sélectionnez Assistant Test unitaire dans la liste Modèles , puis cliquez sur OK.

  8. Dans la boîte de dialogue Nouveau projet de test , laissez le nom du projet TestProject1 , puis cliquez sur Créer.

  9. Dans la boîte de dialogue Créer des tests unitaires , développez les types et sélectionnez le constructeur POSchema() sous le nœud Microsoft.Samples.BizTalk.HelloWorld.POSchema . Sélectionnez également le constructeur POToInvoice() sous le nœud Microsoft.Samples.BizTalk.HelloWorld.POToInvoice . La figure ci-dessous illustre les sélections qui doivent être effectuées. Après avoir effectué les sélections ci-dessous, appuyez sur OK.

    Image montrant la boîte de dialogue Créer des tests unitaires.

Ajout du code de test pour tester les schémas et le mappage

  1. Ajoutez les références suivantes au projet TestProject1 à partir de l’onglet .NET de la boîte de dialogue Ajouter une référence :

    • Microsoft.BizTalk.TestTools

    • Types de base de Microsoft XLANG/s

  2. Dans l'Explorateur de solutions, ouvrez POSchemaTest.cs.

  3. Faites défiler jusqu’au bas du fichier et remplacez la méthode POSchemaConstructorTest par le code suivant qui valide l’exemple de message d’entrée 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. Dans l'Explorateur de solutions, ouvrez POToInvoiceTest.cs et ajoutez la directive suivante en haut de ce fichier :

    
    using System.IO;
    
  5. Faites défiler jusqu’au bas du fichier et remplacez la méthode POToInvoiceConstructorTest par le code suivant qui teste la carte à l’aide de l’exemple de message d’entrée 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));
    }
    

Génération et exécution du test unitaire

  1. Dans Explorateur de solutions, cliquez avec le bouton droit sur TestProject1, puis cliquez sur Générer.

  2. Dans le menu main, cliquez sur Tester, puis dans la liste Windows, cliquez sur Affichage test.

  3. Dans la fenêtre Affichage test, cliquez avec le bouton droit sur POSchemaInstanceValidationTest, puis cliquez sur Exécuter la sélection. Vérifiez que vous voyez Réussite dans la fenêtre Résultats des tests.

  4. Dans la fenêtre Affichage test, cliquez avec le bouton droit sur POToInvoiceMapTest, puis cliquez sur Exécuter la sélection. Vérifiez que vous voyez Réussite dans la fenêtre Résultats des tests.

  5. En cas d'échec à un test, vous pouvez double-cliquer sur le test dans la fenêtre Résultats des tests pour voir la déclaration ou l'exception à l'origine de l'échec.

Récapitulatif du code de test

Lorsque les tests unitaires ont été activés pour le projet HelloWorld , la classe C# associée à POSchema.xsd était dérivée de la classe Microsoft.BizTalk.TestTools.Schema.TestableSchemaBase . La méthode POSchemaInstanceValidationTest dans TestProject1 a utilisé la méthode ValidateInstance de la classe POSchema pour valider SamplePOInput.xml par rapport au schéma de bon de commande.

De même, lorsque les tests unitaires ont été activés pour le projet HelloWorld , la classe C# associée à la carte POToInvoice.btm était dérivée de la classe Microsoft.BizTalk.TestTools.Mapper.TestableMapBase . La méthode POToInvoiceMaptest a utilisé la méthode TestMap de la classe POToInvoice pour tester la carte à l’aide du même message SamplePOInput.xml. Ceci a permis de générer le fichier SampleInvoiceOutput.xml dans le répertoire HelloWorld.

Voir aussi

Utilisation de la fonctionnalité de test unitaire avec des pipelinestravaillant avec des tests unitaires (Visual Studio)