Questo argomento descrive il processo passo-passo per la creazione del test unitario più semplice in Microsoft Visual Studio 2010 (C#) per l’applicazione Console. Usando questo esempio, puoi imparare come creare i tuoi test di unità. L’esempio mostra anche come utilizzare la classe Assert per il test.

Contenuto

  • Attività
  • Istruzioni
    • 1. Creare un’applicazione utilizzando il modello di applicazione Console
    • 2. Preparazione del testo del programma.modulo cs
      • 2.1. Aggiunta della funzione Min ()
      • 2.2. Rendere pubblica la classe del programma
    • 3. Elenco del programma in prova
    • 4. Creazione di un test
      • 4.1. Aggiunta di un nuovo progetto alla soluzione
      • 4.2. Struttura della soluzione
      • 4.3. Codice programma di ” UnitTest1.file cs. Attributi e
      • 4.4. Apportare modifiche al testo UnitTest1.modulo cs. Modifica del nome del metodo di prova
      • 4.5. Collegamento del progetto MinApp al progetto TestMinApp
      • 4.6. Modifica di UnitTest1.testo del modulo cs
        • 4.6.1. Aggiunta dello spazio dei nomi MinApp a UnitTest1.cs
        • 4.6.2. Testo del metodo TestMin()
      • 4.7. Il testo di UnitTest1.modulo cs
    • 5. Eseguire il test e verificare il risultato del test
    • 6. Risultato. Interazione tra progetti
  • Argomenti correlati

Cerca altri siti web:

Attività

Per un’applicazione di tipo Console, sviluppa un test unitario che verifica la funzione Min (). Per la funzione Min (), impostare il metodo di prova TestMin (). Testare il risultato delle funzioni.

Istruzioni

1. Creare un’applicazione utilizzando il modello di applicazione Console

Eseguire MS Visual Studio 2010. Per creare un progetto utilizzando il modello di applicazione Console, è necessario chiamare la seguente sequenza di comandi:

File -> New -> Project...

Di conseguenza, si apre la nuova finestra del progetto. Nella finestra, selezionare il modello” Applicazione console ” come mostrato in Figura 1. Il modello è selezionato nella scheda Visual C#.

 C#. Moduli Windows. La finestra "Nuovo progetto". Selezione dell

Figura 1. La finestra “Nuovo progetto”. Selezione dell ‘”Applicazione console”

2. Preparazione del testo del programma.modulo cs

2.1. Aggiungendo la funzione Min ()

Nel corpo della classe del programma, è necessario aggiungere il testo della funzione Min (). La funzione è dichiarata pubblica e statica. Il testo della funzione Min ()

C#. La finestra di MS Visual Studio, il modulo "Programma.cs"

Figura 2. La finestra di MS Visual Studio, il modulo “Programma.cs”

2.2. Rendere pubblica la classe del programma

Per accedere alla funzione Min() della classe del programma, è necessario rendere pubblica questa classe. Per fare ciò, prima della dichiarazione di classe, è necessario impostare la parola chiave pubblica.

...namespace MinApp{ public class Program { // методы класса // ... }}...

Dopo di che il programma testato è pronto.

3. Elenco del programma in prova

Al momento il codice del programma in prova è il seguente:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MinApp{ public class Program { public static int Min(int a, int b, int c) { int min = a; if (min > b) min = b; if (min > c) min = c; return min; } static void Main(string args) { Console.WriteLine("Demo of Unit-testing in C#."); } }}

Poiché questo programma verrà testato da un altro modulo di test, quindi nella funzione Main (), non è necessario digitare nient’altro. Poiché, in base alle condizioni dell’attività, è necessario testare il funzionamento della funzione Min (). E questo sarà già fatto dal modulo di test. Al momento il nostro programma è pronto per il test.

4. Creazione di un test

Il test viene creato da un progetto separato nella soluzione. Il programma che stai testando non lo sa. Il programma di test che eseguirà il test chiama le funzioni del programma che viene testato. Nel nostro caso, il programma di test chiamerà la funzione

int Min(int, int, int);

4.1. Aggiunta di un nuovo progetto alla soluzione

Per questa soluzione, viene aggiunto un nuovo progetto utilizzando il comando

File->Add->New Project...

La finestra per la creazione di un nuovo progetto è mostrata in Figura 3.

 C#. Applicazione Windows Forms. La finestra per la creazione di un progetto di tipo Test Project

Figura 3. La finestra per la creazione di un progetto di tipo Test Project

Nella finestra è necessario selezionare il gruppo di modelli

Visual C# -> Test

Dai modelli visualizzati, viene selezionato il modello di progetto “Test Project”. Il campo” Nome ” indica il nome del progetto che metterà alla prova il nostro programma. È necessario impostare, ad esempio, TestMinApp. Il progetto si trova in una cartella separata “E:\Test\MinApp”.

 C#. Il " UnitTest1.file cs. La finestra di Esplora soluzioni con i progetti TestMinApp e MinApp visualizzato

Figura 4. Il ” UnitTest1.file cs. La finestra di Esplora soluzioni con i progetti TestMinApp e MinApp visualizzati

4.2. Struttura della soluzione

Come si può vedere in Figura 4, Solution Explorer visualizza la struttura degli elementi della soluzione, che contiene due progetti:

  • il progetto MinApp. Questo è un progetto creato utilizzando il modello “Console Application” con la funzione Min () da testare;
  • il progetto TestMinApp. Questo progetto è progettato per testare le funzioni del progetto MinApp. Il codice del programma che verifica la funzione Min () verrà aggiunto al file di progetto UnitTest1 del progetto TestMinApp.

Entrambi i progetti possono essere eseguiti indipendentemente l’uno dall’altro.

4.3. Codice programma di ” UnitTest1.file cs. Attributi e

Nel progetto TestMinApp, l’UnitTest1.file di test cs è di interesse primario. Questo file contiene metodi che testeranno le funzioni del progetto MinApp. Il progetto TestMinApp può contenere un numero qualsiasi di file che contengono test (ad esempio, UnitTest2.cs, UNITEST3.cs, ecc.).

Codice programma di ” UnitTest1.cs ” file, generato da MS Visual Studio 2010, è il seguente:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMethod1() { // // TODO: Add test logic here // } }}

Come puoi vedere dal codice sopra, il file contiene una classe denominata UnitTest1. La classe prevede un metodo pubblico denominato TestMethod1 ().Prima di implementare il metodo TestMethod1 (), viene inserito l’attributo. Ciò significa che nel corpo del metodo è necessario scrivere codice che testerà le funzioni del progetto MinApp.

Nella classe, è possibile immettere un numero qualsiasi di metodi che testeranno diverse funzioni da diversi moduli. La cosa principale è che questi metodi sono stati notati dall’attributo .

4.4. Apportare modifiche al testo UnitTest1.modulo cs. Modifica del nome del metodo di test

È possibile modificare i nomi dei metodi e aggiungere nuovi metodi contrassegnati con l’attributo in UnitTest1.modulo cs. Con questo in mente, in UnitTest1.cs, il metodo TestMethod1 () deve essere rinominato in TestMin ().

Dopo le modifiche apportate, il testo abbreviato di UnitTest1.modulo file cs sarà simile:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { ... public void TestMin() { // // TODO: Add test logic here // } }}

4.5. Collegamento del progetto MinApp al progetto TestMinApp

Per accedere alla funzione Min () (il progetto MinApp) dal progetto TestMinApp, è necessario montare lo spazio dei nomi in cui viene dichiarata questa funzione.

Per fare ciò, devi prima chiamare il menu di scelta rapida per il progetto TestMinApp. Quindi nel menu di scelta rapida, è necessario chiamare il comando “Aggiungi riferimento Reference” (Figura 5).

 C#. Creazione di unità di prova. Il " Aggiungi Referencse..."comando

Figura 5. Il comando “Aggiungi Referencse Refer”

Di conseguenza, si apre la finestra “Aggiungi riferimento”, in cui si seleziona il progetto MinApp.

 C#. Unit-test creazione della finestra "Aggiungi riferimento". MinApp project connection

Figura 6. La finestra “Aggiungi riferimento”. MinApp project connection

Dopo le azioni eseguite, le funzioni del progetto MinApp saranno disponibili per l’uso nel progetto TestMinApp.

 C#. Applicazione Windows Forms. La scheda "Riferimenti" con il progetto Minapp collegato

Figura 7. La scheda “Riferimenti” con il progetto Minapp collegato

4.6. Modifica di UnitTest1.testo del modulo cs
4.6.1. Aggiunta dello spazio dei nomi MinApp a UnitTest1.cs

In questo passaggio, è necessario aggiungere lo spazio dei nomi MinApp a UnitTest1.cs utilizzando la direttiva “using”:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ ...}

4.6.2. Testo del metodo TestMin ()

Nel testo del metodo TestMin (), è necessario inserire il seguente codice:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min);}...

4.7. Il testo di UnitTest1.modulo cs

Il testo di tutti i UnitTest1.modulo cs è il seguente:

using System;using System.Text;using System.Collections.Generic;using System.Linq;using Microsoft.VisualStudio.TestTools.UnitTesting;using MinApp;namespace TestMinApp{ /// <summary> /// Summary description for UnitTest1 /// </summary> public class UnitTest1 { public UnitTest1() { // // TODO: Add constructor logic here // } private TestContext testContextInstance; /// <summary> ///Gets or sets the test context which provides ///information about and functionality for the current test run. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } #region Additional test attributes // // You can use the following additional attributes as you write your tests: // // Use ClassInitialize to run code before running the first test in the class // // public static void MyClassInitialize(TestContext testContext) { } // // Use ClassCleanup to run code after all tests in a class have run // // public static void MyClassCleanup() { } // // Use TestInitialize to run code before running each test // // public void MyTestInitialize() { } // // Use TestCleanup to run code after each test has run // // public void MyTestCleanup() { } // #endregion public void TestMin() { // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(2, min); } }}

5. Eseguire il test e verificare il risultato del test

In Microsoft Visual Studio 2010 per i test unitari, viene implementato un menu speciale ‘Test’.

Per eseguire il test, è necessario selezionare uno dei comandi

Test -> Run -> Tests in Current Context

o

Test -> Run -> All Tests in Solution

come mostrato in Figura 8.

 C#. Creazione di unità di prova. Chiamando il comando test e visualizzando il risultato

Figura 8. Chiamando il comando test e visualizzando il risultato

Dopo aver avviato il test, il risultato può essere visualizzato a sinistra nella finestra Esplora test. Come si può vedere dalla Figura 8, il test non viene superato. Questo è logico, perché nella funzione Assert.AreEqual () confrontiamo i numeri 2 e 3, che sono diversi. Qui il numero 2 è inserito appositamente al posto del numero 3.

Se invece del numero 2 si inserisce la risposta corretta – numero 3 (minimo tra 3, 4, 5), verrà inviato il test (Figura 9). In questo caso, il testo del metodo TestMin () sarà il seguente:

...public void TestMin(){ // // TODO: Add test logic here // int min; min = Program.Min(3, 4, 5); Assert.AreEqual(3, min);}...

La finestra dei risultati è mostrata in Figura 9.

 C#. Creazione di unità di prova. Risultato del test per il caso in cui si immette la risposta corretta

Figura 9. Risultato del test per il caso in cui si inserisce la risposta corretta

Ora possiamo concludere che la funzione Min() funziona correttamente per questo caso.

6. Risultato. Interazione tra progetti

In questa attività, la soluzione coinvolge due progetti. Un progetto MinApp contiene la funzione Min () da testare. Il secondo progetto TestMinApp contiene metodi di test. In Microsoft Visual Studio 2010, ciascuno dei progetti viene eseguito utilizzando vari comandi di menu. Quindi, il progetto MinApp viene eseguito nel modo standard dal menu Esegui. E il progetto TestMinApp viene lanciato da uno speciale menu ‘Test’.

Leave a comment

Il tuo indirizzo email non sarà pubblicato.