Esercizio - Testare il codice con Copilot

Completato

La capacità di Copilot di generare unit test è un ottimo risparmio di tempo per gli sviluppatori. In questo esercizio si userà Copilot per generare unit test per il progetto Trie. È ora di iniziare.

Usare Copilot per testare il codice

In questo esercizio si userà Copilot per generare test di base per i metodi trie.

  1. Aprire il file TrieTests.cs in TrieDictionaryTest

  2. TrieTest Nella classe immettere il codice seguente:

    // Test that a word is inserted in the trie
    [TestMethod]
    
  3. Immettere una nuova riga, quindi attendere che Copilot generi codice

    Copilot deve generare codice che inserisce una parola e asserisce che la parola è stata inserita.

  4. In una nuova riga immettere il codice seguente:

    // Test that a word is deleted from the trie
    [TestMethod]
    
  5. Immettere una nuova riga, quindi attendere che Copilot generi codice

    Copilot deve generare codice che inserisce una parola e asserisce che la parola è stata eliminata.

  6. Ripetere i passaggi con i prompt seguenti:

    // Test that a word is not inserted twice in the trie
    
    // Test that a word is deleted from the trie
    
    // Test that a word is not deleted from the trie if it is not present
    
    // Test that a word is deleted from the trie if it is a prefix of another word
    

    Man mano che si continua a generare codice di test, è possibile notare che Copilot esegue il completamento automatico del prompt, lo [TestMethod] stub e il codice. La capacità di Copilot di prevedere il codice necessario rende più veloce la generazione di unit test. Assicurarsi di verificare che le asserzioni generate siano corrette.

    Tuttavia, Copilot potrebbe non sempre prevedere il test esatto necessario. Potrebbe essere necessario esaminare il codice generato e apportare modifiche al test oppure usare richieste più specifiche

  7. In una nuova riga immettere il commento di codice seguente:

    // Test AutoSuggest for the prefix "cat" not present in the 
    // trie containing "catastrophe", "catatonic", and "caterpillar"
    
  8. Immettere una nuova riga e attendere che Copilot generi codice

    Verificare che il test generato sia simile al seguente, apportando le modifiche necessarie:

    [TestMethod]
    public void TestAutoSuggest()
    {
        Trie dictionary = new Trie();
        dictionary.Insert("catastrophe");
        dictionary.Insert("catatonic");
        dictionary.Insert("caterpillar");
        List<string> suggestions = dictionary.AutoSuggest("cat");
        Assert.AreEqual(3, suggestions.Count);
        Assert.AreEqual("catastrophe", suggestions[0]);
        Assert.AreEqual("catatonic", suggestions[1]);
        Assert.AreEqual("caterpillar", suggestions[2]);
    }
    
  9. In una nuova riga immettere il commento di codice seguente:

    // Test GetSpellingSuggestions for a word not present in the trie
    
  10. Immettere una nuova riga e attendere che Copilot generi codice

    Verificare che il test generato sia simile al seguente, apportando le modifiche necessarie:

    [TestMethod]
    public void TestGetSpellingSuggestions()
    {
        Trie dictionary = new Trie();
        dictionary.Insert("cat");
        dictionary.Insert("caterpillar");
        dictionary.Insert("catastrophe");
        List<string> suggestions = dictionary.GetSpellingSuggestions("caterpiller");
        Assert.AreEqual(1, suggestions.Count);
        Assert.AreEqual("caterpillar", suggestions[0]);
    }
    

Controlla il tuo lavoro

In questa attività si testeranno i metodi creati con Copilot per verificare che funzionino come previsto.

  1. In Esplora file fare clic con il pulsante destro del mouse sul file TrieTest.cs e scegliere Apri nel terminale integrato

  2. Immettere dotnet test per eseguire i test.

  3. Verificare che tutti i test vengano superati.

    Passed!  - Failed:     0, Passed:     7, Skipped:     0, Total:     7, Duration: 638 ms - TrieDictionaryTest.dll (net7.0)
    

    Se i test producono risultati diversi, esaminare il codice per trovare l'errore e apportare aggiornamenti. Eseguire di nuovo il codice per verificare se il problema è stato risolto. Continuare ad aggiornare ed eseguire il codice fino a quando non produce i risultati previsti.