Condividi tramite


Utilizzo delle funzionalità di testing di unità con schemi e mappe

In questo argomento viene illustrato come utilizzare la funzionalità di testing unità per aggiungere unit test per gli schemi e la mappa nell'esempio di orchestrazione HelloWorld.

Nota

La funzionalità di testing unità per le mappe attualmente non supporta più mappe di input.

Prerequisiti

È innanzitutto necessario attenersi alla procedura per la compilazione dell'esempio HelloWorld Questi passaggi sono disponibili qui: HelloWorld (esempio di BizTalk Server)

Aggiunta di un progetto unit test all'esempio HelloWorld

  1. In Visual Studio aprire il file di soluzione HelloWorld.sln.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto HelloWorld e quindi scegliere Proprietà.

  3. In Project Designer fare clic sulla scheda Delle proprietà Distribuzione e impostare Abilita unit test su True.

  4. Salvare le modifiche e chiudere la pagina delle proprietà del progetto.

  5. Nel menu principale fare clic su Compila e quindi su Ricompila soluzione.

  6. Scegliere Test dal menu principale e quindi fare clic su Nuovo test.

  7. Nella finestra di dialogo Aggiungi nuovo test selezionare Crea un nuovo progetto di test di Visual C# per il campo Aggiungi al progetto di test . Selezionare Creazione guidata unit test nell'elenco Modelli e quindi fare clic su OK.

  8. Nella finestra di dialogo Nuovo progetto di test lasciare il nome del progetto come TestProject1 e fare clic su Crea.

  9. Nella finestra di dialogo Crea unit test espandere i tipi e selezionare il costruttore POSchema() nel nodo Microsoft.Samples.BizTalk.HelloWorld.POSchema . Selezionare anche il costruttore POToInvoice() nel nodo Microsoft.Samples.BizTalk.HelloWorld.POToInvoice . Nella figura seguente vengono illustrate le selezioni che è necessario e effettuare. Dopo aver effettuato le selezioni visualizzate di seguito, premere OK.

    Immagine che mostra la finestra di dialogo Crea unit test.

Aggiunta di codice di test per testare schemi e mappa

  1. Aggiungere i riferimenti seguenti al progetto TestProject1 dalla scheda .NET nella finestra di dialogo Aggiungi riferimento:

    • Microsoft.BizTalk.TestTools

    • Tipi di base Microsoft XLANG/s

  2. In Esplora soluzioni aprire POSchemaTest.cs

  3. Scorrere fino alla fine del file e sostituire il metodo POSchemaConstructorTest con il codice seguente che convalida il messaggio di input dell'ordine di acquisto di esempio:

    [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. In Esplora soluzioni aprire POToInvoiceTest.cs e aggiungere la direttiva seguente nella parte superiore del file:

    
    using System.IO;
    
  5. Scorrere fino alla fine del file e sostituire il metodo POToInvoiceConstructorTest con il codice seguente che testa la mappa usando il messaggio di input dell'ordine di acquisto di esempio:

    
    [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));
    }
    

Compilazione ed esecuzione di unit test

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su TestProject1 e quindi scegliere Compila.

  2. Nel menu principale fare clic su Teste quindi nell'elenco Windows fare clic su Visualizzazione test.

  3. Nella finestra Visualizzazione test fare clic con il pulsante destro del mouse su POSchemaInstanceValidationTest e quindi scegliere Esegui selezione. Verificare che venga visualizzato Superato nella finestra Risultati test.

  4. Nella finestra Visualizzazione test fare clic con il pulsante destro del mouse su POToInvoiceMapTest e quindi scegliere Esegui selezione. Verificare che venga visualizzato Superato nella finestra Risultati test.

  5. Se un test non viene superato, è possibile fare doppio clic sul test nella finestra Risultati test per visualizzare l'asserzione o l'eccezione che ha causato l'esito negativo del test.

Riepilogo del codice di test

Quando è stato abilitato lo unit test per il progetto HelloWorld , la classe C# associata a POSchema.xsd è stata derivata dalla classe Microsoft.BizTalk.TestTools.Schema.TestableSchemaBase . Il metodo POSchemaInstanceValidationTest in TestProject1 ha usato il metodo ValidateInstance della classe POSchema per convalidare SamplePOInput.xml rispetto allo schema dell'ordine di acquisto.

Analogamente, quando gli unit test sono stati abilitati per il progetto HelloWorld , la classe C# associata alla mappa POToInvoice.btm è stata derivata dalla classe Microsoft.BizTalk.TestTools.Mapper.TestableMapBase . Il metodo POToInvoiceMaptest ha usato il metodo TestMap della classe POToInvoice per testare la mappa usando lo stesso messaggio SamplePOInput.xml. Ciò ha causato la creazione di SampleInvoiceOutput.xml nella directory HelloWorld.

Vedere anche

Uso della funzionalità unit test con pipelineche usano unit test (Visual Studio)