Condividi tramite


Unit test per le app di Windows UI Library (WinUI) in Visual Studio

Questo articolo illustra come creare unit test per le app WinUI in Visual Studio usando i modelli di progetto di unit test integrati.

Per una panoramica generale dei test delle app Windows App SDK, consultare la sezione Testare le app compilate con Windows App SDK e WinUI 3.

Nota

L'app di unit test qui illustrata è scritta nel contesto di un'applicazione WinUI. Questa operazione è necessaria per tutti i test che eseguono codici che richiedono il runtime Xaml. Questo progetto creerà un thread dell'interfaccia utente Xaml ed eseguirà i test.

In questa esercitazione apprenderai a:

  • Creare un'app unit test (WinUI 3 in Desktop) per un'app C# o unit test (WinUI 3) per il progetto C++ in Visual Studio.
  • Usare Esplora testo di Visual Studio.
  • Aggiungere un progetto Class Library (WinUI 3 in Desktop) per il test.
  • Eseguire i test con Esplora test di Visual Studio.

Prerequisiti

È necessario aver installato Visual Studio.

Se non è ancora stato installato Visual Studio, accedere alla pagina Download di Visual Studio per installarlo gratuitamente.

Come si crea un progetto di app di test (WinUI 3 in Desktop)

Per iniziare, creare un progetto di unit test. Il tipo di progetto viene fornito con tutti i file modello necessari.

  1. Aprire Visual Studio e selezionare Crea nuovo progetto nella finestra iniziale.

    Screenshot della finestra iniziale di Visual Studio.

  2. Nella finestra Crea un nuovo progetto filtrare i progetti in C#, Windows e WinUI, selezionare il modello App unit test in Desktop (WinUI 3) o App unit test (WinUI 3) per C++, quindi selezionare Avanti

    Screenshot della finestra

  3. [Facoltativo] Nella finestra Configura nuovo progetto, modificare il Nome progetto, il Nome soluzione (deselezionare Metti soluzione e progetto nella stessa directory) e la Posizione del progetto.

  4. Seleziona Crea.

Come si eseguono gli unit test con Esplora test

Quando si crea il progetto di test, i test vengono visualizzati in Esplora test, che viene usato per eseguire gli unit test. È inoltre possibile raggruppare i test in categorie, filtrare l'elenco di test, creare, salvare ed eseguire playlist di test, eseguire il debug di unit test e ,in Visual Studio Enterprise, analizzare il code coverage.

Il file UnitTests.cs contiene il codice sorgente per gli unit test usati da Esplora test. Per impostazione predefinita, i test di esempio di base illustrati di seguito vengono creati automaticamente:

namespace WinUITest1
{
   [TestClass]
   public class UnitTest1
   {
      [TestMethod]
      public void TestMethod1()
      {
         Assert.AreEqual(0, 0);
      }

      // Use the UITestMethod attribute for tests that need to run on the UI thread.
      [UITestMethod]
      public void TestMethod2()
      {
         var grid = new Grid();
         Assert.AreEqual(0, grid.MinWidth);
      }
   }
}
  1. Se non è già stato fatto, compilare la soluzione. Questo consentirà a Visual Studio di "individuare" tutti i test disponibili.

  2. Aprire Esplora test. Se non è visibile, aprire il menu Test, quindi selezionare Esplora test (oppure premere Ctrl + E, T).

    Screenshot del menu Test in Visual Studio.

  3. Visualizzare i test. Nella finestra Esplora test, espandere tutti i nodi (a questo punto saranno presenti solo i test di esempio).

    Screenshot della finestra Esplora test in Visual Studio che mostra i test di esempio predefiniti.

  4. Esecuzione dei test.

    • Fare clic con il pulsante destro del mouse sui singoli nodi di test e selezionare Esegui.
    • Selezionare un test e premere il pulsante Riproduci oppure premere CTRL+R, T.
    • Premere il pulsante Esegui tutti i test nella visualizzazione o premere CTRL+R, V.

    Screenshot della finestra Esplora test in Visual Studio che mostra il menu di scelta rapida del test con il comando Esegui evidenziato.

  5. Esaminare i risultati. Al termine dei test, i risultati vengono visualizzati nella finestra Esplora test.

    Screenshot della finestra Esplora test in Visual Studio che mostra i risultati dei test.

  6. Aggiungere un nuovo progetto alla soluzione unit test. In Esplora soluzioni, fare clic con il pulsante destro del mouse e selezionare Aggiungi -> Nuovo progetto....

    Screenshot del menu di scelta rapida Soluzione con Aggiungi\/Nuovo progetto evidenziato in Visual Studio.

  7. Per questo esempio, aggiungere un progetto di libreria di classi WinUI. Nella finestra Nuovo progetto, filtrare in C#/Windows/WinUI e selezionare Class Library (WinUI 3 in Desktop).

    Screenshot della finestra Nuovo progetto con Class Library (WinUI 3 in Desktop) evidenziata in Visual Studio.

  8. Selezionare Avanti e immettere un nome per il progetto (per questo esempio, si usa "WinUIClassLibrary1") e premere Crea.

    Screenshot del nuovo progetto

  9. Aggiungere un nuovo UserControl al progetto. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto di libreria di classi WinUI appena aggiunto e scegliere Aggiungi -> Nuovo elemento dal menu di scelta rapida.

    Screenshot del menu di scelta rapida Soluzione con Aggiungi\/Nuovo elemento evidenziato in Visual Studio.

  10. Nella finestra Aggiungi nuovo elemento selezionare il nodo WinUI nell'elenco Elementi installati e quindi scegliere Controllo utente (WinUI 3) dai risultati. Assegnare al controllo il nome "UserControl1".

    Screenshot della finestra Aggiungi nuovo elemento con WinUI\/User Control (WinUI 3) evidenziato in Visual Studio.

  11. Aprire il file code-behind UserControl1.xaml.cs. Per questo esempio, viene aggiunto un nuovo metodo pubblico denominato "GetSeven()" che restituisce semplicemente un numero intero.

    namespace WinUICLassLibrary1
    {
      public sealed partial class UserControll : UserControl
      {
         public UserControl1()
         {
             this.InitializeComponent();
         }
    
         public int GetSeven()
         {
             return 7;
         }
      }
    }
    
  12. Impostare il progetto Libreria di classi WinUI come dipendenza del progetto di unit test per abilitare l'uso di tipi dal progetto di libreria di classi WinUI. Nella finestra Esplora soluzioni, nel progetto libreria di classi, fare clic con il pulsante destro del mouse su Dipendenze e selezionare Aggiungi riferimento progetto.

    Screenshot del menu di scelta rapida Dipendenze con Aggiungi riferimento progetto evidenziato in Visual Studio.

    Selezionare l'elemento "WinUIClassLibrary1" dall'elenco Progetti .

    Screenshot della finestra di dialogo Gestione riferimenti con il progetto 'WinUIClassLibrary1' selezionato.

  13. Creare un nuovo metodo di test in UnitTests.cs. Poiché questo test case richiede l'esecuzione di un thread dell'interfaccia utente XAML, contrassegnarlo con l'attributo [UITestMethod] anziché con l'attributo standard [TestMethod].

    [UITestMethod]
    public void TestUserControl1()
    {
       WinUIClassLibrary1.UserControl1 userControl1 = new WinUIClassLibrary1.UserControl1();
       Assert.AreEqual(7, userControl1.GetSeven());
    }
    

    Questo nuovo metodo di test viene ora visualizzato in Esplora test come uno degli unit test.

    Screenshot della finestra Esplora test in Visual Studio che mostra i test di esempio predefiniti con il nuovo unit test.

  14. Esecuzione dei test.

  • Fare clic con il pulsante destro del mouse sul nodo del nuovo test e selezionare Esegui.
  • Selezionare un test e premere il pulsante Riproduci oppure premere CTRL+R, T.
  • Premere il pulsante Esegui tutti i test nella visualizzazione o premere CTRL+R, V.

Screenshot della finestra Esplora test in Visual Studio che mostra un'esecuzione di test completata dei test di esempio predefiniti e del nuovo unit test.

Risorse aggiuntive

Nozioni di base sugli unit test

Passaggi successivi

Questa esercitazione ha descritto come:

  • Creare un progetto app di test (WinUI 3 in desktop) in Visual Studio.
  • Usare Esplora testo di Visual Studio.
  • Aggiungere un progetto Class Library (WinUI 3 in Desktop) per il test.
  • Eseguire i test con Esplora test di Visual Studio.

Copertura più completa degli strumenti di test inclusi in Visual Studio: