Condividi tramite


Uso della funzionalità di unit test con schemi e mappe

Questo argomento illustra come usare la funzionalità di unit test per aggiungere uno unit test per gli schemi e il mapping nell'esempio di orchestrazione HelloWorld.

Annotazioni

La funzionalità di unit test per le mappe attualmente non supporta mappe di input multiple.

Prerequisiti

È prima necessario seguire i passaggi per la compilazione dell'esempio HelloWorld. Questi passaggi sono disponibili qui: HelloWorld (esempio di BizTalk Server)

Aggiunta di un progetto di unit test all'esempio HelloWorld

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

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

  3. In Progettazione progetti fare clic sulla scheda delle proprietà Distribuzione e impostare Abilita unit test su True.

  4. Chiudere la pagina delle proprietà del progetto salvando le modifiche.

  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 . La figura seguente mostra le selezioni che devono essere effettuate. Dopo aver effettuato le selezioni visualizzate di seguito, premere OK.

    Immagine che mostra la finestra di dialogo per la creazione di unit test.

Aggiunta di codice di test per testare gli schemi e la mappa

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

    • Microsoft.BizTalk.TestTools

    • Tipi di base di Microsoft XLANG/s

  2. In Esplora soluzioni, apri POSchemaTest.cs

  3. Scorrere fino alla fine del file e sostituire il metodo POSchemaConstructorTest con il seguente codice che convalida il messaggio di input di esempio 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. In Esplora soluzioni aprire POToInvoiceTest.cs e aggiungere la direttiva seguente all'inizio del file:

    
    using System.IO;
    
  5. Scorri fino in fondo al file e sostituisci il metodo POToInvoiceConstructorTest con il seguente codice che testa la mappa utilizzando un messaggio di input di esempio dell'ordine di acquisto:

    
    [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 dello 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 Finestre 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 sia 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 sia visualizzato Superato nella finestra Risultati test.

  5. Se un test non riesce, è possibile fare doppio clic sul test nella finestra Risultati test per visualizzare l'asserzione o l'eccezione che ha causato l'errore di test.

Riepilogo del codice di test

Quando gli unit test sono stati abilitati per il progetto HelloWorld , la classe C# associata a POSchema.xsd è 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 usa il metodo TestMap della classe POToInvoice per testare la mappa usando lo stesso messaggio SamplePOInput.xml. Ciò ha comportato la creazione di SampleInvoiceOutput.xml nella directory HelloWorld.

Vedere anche

Uso della funzionalità di test unitari con le pipelineLavorare con i test unitari (Visual Studio)