Condividi tramite


Procedura dettagliata: verifica del codice di SharePoint tramite unit test

Lo unit test consente di eseguire il debug e di controllare l'operazione del codice in modo più accurato. In questa procedura dettagliata viene illustrato come incorporare uno unit test in un'applicazione di SharePoint. Anche se in questa procedura dettagliata viene utilizzato un tipo di progetto SharePoint specifico, è possibile eseguire il test di qualsiasi tipo di progetto di codice SharePoint utilizzando gli unit test.

Iniziare con un progetto di definizione di elenco standard con un'istanza di elenco e un ricevitore di eventi, quindi aggiungere uno unit test al codice del ricevitore di eventi mediante il quale viene aggiunto un elenco di annunci a SharePoint. La creazione dell'annuncio comporta la modifica dell'annuncio da parte del ricevitore di eventi. Tramite lo unit test viene controllato se l'annuncio è stato modificato come previsto e vengono segnalati i risultati.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Creazione di una definizione di elenco con un'istanza di elenco tramite il modello di progetto Definizione di elenco.

  • Creazione di un ricevitore di eventi tramite il modello di progetto Ricevitore di eventi.

  • Aggiunta e modifica di elementi dell'elenco tramite codice.

  • Aggiunta di uno unit test a un progetto SharePoint.

  • Esecuzione dello unit test in un progetto SharePoint.

  • Visualizzazione e interpretazione dei risultati dello unit test.

    Nota

    Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio in uso e le impostazioni utilizzate determinano questi elementi. Per ulteriori informazioni, vedere Gestione delle impostazioni.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

Creazione di un progetto Definizione di elenco

Creare innanzitutto un progetto di definizione di elenco con un'istanza di elenco.

Per creare un progetto di definizione di elenco

  1. Avviare Visual Studio 2010 tramite l'opzione Esegui come amministratore.

  2. Scegliere Nuovo dal menu File, quindi Progetto. Verrà visualizzata la finestra di dialogo Nuovo progetto.

  3. Nella parte superiore della finestra di dialogo Nuovo progetto selezionare .NET Framework 3.5 nell'elenco a discesa.

  4. Nella finestra di dialogo Nuovo progetto espandere il nodo SharePoint sotto il linguaggio che si desidera utilizzare, quindi selezionare il nodo 2010.

  5. Nel riquadro Modelli selezionare Definizione di elenco, quindi scegliere OK.

    Verrà visualizzata la Personalizzazione guidata SharePoint. Utilizzare il nome predefinito del progetto, ListDefinitionProject1. Questa procedura guidata consente di selezionare il sito che verrà utilizzato per eseguire il debug del progetto e il livello di attendibilità della soluzione.

  6. Selezionare Distribuisci come soluzione farm, quindi scegliere Avanti. Le funzionalità ALM funzionano solo con soluzioni farm.

  7. Nella finestra Scegliere le impostazioni di definizione dell'elenco fare clic su Fine per accettare i valori predefiniti. In questo modo viene creata una definizione dell'elenco degli annunci e viene aggiunta un'istanza di tale elenco a SharePoint.

Aggiunta di un ricevitore di eventi alla definizione di elenco

Aggiungere un ricevitore di eventi alla definizione di elenco per consentire di rispondere alle modifiche apportate alla definizione di elenco.

Per aggiungere un ricevitore di eventi al progetto

  1. Fare clic sulla definizione di elenco in Esplora soluzioni.

  2. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  3. Nel riquadro Modelli installati della finestra di dialogo Aggiungi nuovo elemento espandere il nodo SharePoint, quindi fare clic su 2010.

  4. Nell'elenco di modelli di SharePoint selezionare Ricevitore di eventi, quindi fare clic su Aggiungi. Utilizzare il nome predefinito dell'elemento del progetto, EventReceiver1.

  5. Nella finestra Selezionare le impostazioni del ricevitore di eventi lasciare il tipo di ricevitore di eventi come Eventi elementi elenco e utilizzare l'origine evento predefinita.

  6. Nell'elenco Gestisci gli eventi seguenti selezionare È in corso l'aggiunta di un elemento, quindi scegliere Fine. In questo modo viene creato un gestore dell'evento che viene attivato quando viene creato un annuncio.

  7. Sostituire il metodo ItemAdding della classe EventReceiver1 con il codice riportato di seguito.

    Public Overrides Sub ItemAdding(properties As SPItemEventProperties)
        properties.AfterProperties("Body") = "Note added by event receiver"
        MyBase.ItemAdding(properties)
    End Sub
    
    public override void ItemAdding(SPItemEventProperties properties)
    {
        properties.AfterProperties["Body"] = "Note added by event receiver"; 
        base.ItemAdding(properties);
    }
    
  8. Aggiungere un punto di interruzione sulla riga properties.AfterProperties che verrà utilizzata in un secondo momento in caso di test del ricevitore di eventi.

  9. Compilare il progetto.

Aggiunta di uno unit test al ricevitore di eventi

Per verificare se il ricevitore di eventi funziona correttamente, aggiungere uno unit test a tale ricevitore.

Per aggiungere uno unit test al ricevitore di eventi

  1. Scegliere Nuovo test dal menu File. Verrà visualizzata la finestra di dialogo Aggiungi nuovo test.

  2. In Modelli fare clic su Creazione guidata unit test.

  3. Nell'elenco a discesa Aggiungi a progetto di test selezionare Crea nuovo progetto di test Visual C# o Crea nuovo progetto di test Visual Basic, quindi scegliere OK. Per questo esempio, utilizzare il nome del progetto di test predefinito, TestProject1.

  4. Nella finestra successiva viene visualizzata una visualizzazione ad albero del progetto di definizione di elenco. Espandere i nodi nella visualizzazione ad albero fino a visualizzare il metodo ItemAdding.

  5. Selezionare la casella di controllo accanto al metodo ItemAdding, quindi scegliere OK.

    In questo modo viene creato un nuovo progetto denominato TestProject1 con un modulo di codice denominato EventReceiver1Test. Nel modulo di codice è incluso un metodo, ItemAddingTest, utilizzato per eseguire il test del metodo ItemAdding corrispondente.

  6. Evidenziare il progetto di test in Esplora soluzioni, quindi selezionare Pagine delle proprietà dal menu Visualizza.

  7. Nelle Pagine delle proprietà per il progetto di test fare clic sulla scheda Applicazione, quindi selezionare .NET Framework 3.5 nell'elenco a discesa Framework di destinazione.

    Verrà visualizzata la finestra di dialogo Modifica versione .NET Framework di destinazione e verrà chiesto se si desidera modificare la versione di .NET Framework di destinazione. Scegliere . In questo modo si assicura che la versione di .NET Framework utilizzata dal progetto di test corrisponda a quella utilizzata dal progetto SharePoint.

  8. Aggiungere il codice riportato di seguito all'inizio della classe EventReceiver1Test.

    ' SharePoint site/subsite.
    Private siteUrl As String = "https://localhost"
    Private webUrl As String = "/"
    
    // SharePoint site/subsite.
    private string siteUrl = "https://localhost";
    private string webUrl = "/";
    
  9. Sostituire il metodo ItemAddingTest con il codice seguente.

    <TestMethod()> _
    Public Sub ItemAddingTest()
        Try
            Using site As New SPSite(siteUrl)
                Using web As SPWeb = site.OpenWeb(webUrl)
                    ' Reference the list instance.
                    Dim mySite As SPList = web.Lists("ListDefinitionProject1 - ListInstance1")
    
                    ' Add a new announcement to the Announcements list.
                    Dim listItems As SPListItemCollection = mySite.Items
                    Dim item As SPListItem = listItems.Add()
                    item("Title") = "A Unit Test Announcement"
                    item("Expires") = "1/1/2099"
                    item.Update()
    
                    ' Test whether the event receiver added the text to the announcement.
                    Dim existingItem As SPListItem = listItems(0)
                    Assert.AreEqual(existingItem("Body").ToString().Contains("Note added by event receiver"), True, "Body passed!")
                End Using
    
            End Using
    
        Catch e As Exception
            Console.WriteLine("Error: " & e.ToString())
        End Try
    End Sub
    
    public void ItemAddingTest()
    {
        try
        {
            using (SPSite site = new SPSite(siteUrl))
            {
                using (SPWeb web = site.OpenWeb(webUrl))
                {
                    // Reference the list instance.
                    SPList mySite = web.Lists["ListDefinitionProject1 - ListInstance1"];
    
                    // Add a new announcement to the Announcements list.
                    SPListItemCollection listItems = mySite.Items;
                    SPListItem item = listItems.Add();
                    item["Title"] = "A Unit Test Announcement";
                    item["Expires"] = "1/1/2099";
                    item.Update();
    
                    // Test whether the event receiver added the text to the announcement.
                    SPListItem existingItem = listItems[0];
                    Assert.AreEqual(existingItem["Body"].ToString().Contains("Note added by event receiver"), true, "Test succeeded!");                                               
                }
            }
    
        }
    
        catch (Exception e)
        {
            Console.WriteLine("Error: " + e.ToString());
        }
    }
    

    Questo codice consente di aprire il sito SharePoint e di aggiungere un nuovo annuncio. Quando il nuovo annuncio viene aggiunto a SharePoint, il codice nel ricevitore di eventi si attiva, aggiungendo un commento all'annuncio. Il codice nello unit test consente di verificare se tramite il ricevitore di eventi è stato aggiunto il commento all'annuncio chiamando il metodo Assert.AreEqual.

  10. Selezionare TestProject1 in Esplora soluzione, scegliere Modifica impostazioni test dal menu Test, quindi fare clic su Locale (local.testsettings). Verrà visualizzata la finestra Impostazioni test.

  11. Nel riquadro di sinistra della finestra Impostazioni test fare clic su Host, quindi selezionare Esegui test in un processo a 64 bit in un computer a 64 bit nell'elenco a discesa Esegui test in un processo a 32 bit o a 64 bit. Scegliere Applica e quindi Chiudi.

    Questa impostazione è necessaria per eseguire il test di applicazioni di SharePoint che sono a 64 bit.

Distribuire la soluzione

Al termine della creazione della soluzione SharePoint e dello unit test, distribuire la soluzione SharePoint, quindi modificare il progetto di avvio. Per lo unit test è necessario che il progetto SharePoint si trovi sul server SharePoint prima di eseguire il test, pertanto occorre distribuire il progetto SharePoint. Dopo aver distribuito il progetto, impostare il progetto di avvio sullo unit test per abilitare il debug con F5.

Per distribuire la soluzione

  1. Scegliere Distribuisci soluzione dal menu Compila per distribuire la soluzione SharePoint.

  2. Fare clic con il pulsante destro del mouse su TestProject1 e selezionare Imposta come progetto di avvio.

Eseguire lo unit test

Ora che la soluzione SharePoint è stata distribuita e lo unit test è pronto, eseguire lo unit test per controllare se il ricevitore di eventi funziona correttamente.

Per eseguire lo unit test

  1. Premere F5 per eseguire il test del progetto.

    Il codice di test consente di creare un nuovo annuncio nel sito SharePoint, attivando il ricevitore di eventi.

  2. Quando viene raggiunto il punto di interruzione, premere F5 per continuare.

    Questa riga nel ricevitore di eventi consente di aggiungere un commento al nuovo annuncio. Tramite il codice di test viene quindi controllato se nell'annuncio è presente il commento.

  3. Viene visualizzata la finestra Risultati test e viene specificato il passaggio di ItemAddingTest. Fare doppio clic su ItemAddingTest nell'elenco per visualizzare i dettagli del test.

    Nei dettagli del risultato del test sono incluse informazioni quali il nome del test, gli orari di inizio e di fine nonché la durata del test.

Vedere anche

Concetti

Composizione di uno unit test

Creazione ed esecuzione di unit test

Debug con IntelliTrace

Altre risorse

Verifica e debug del codice di SharePoint tramite funzionalità ALM

Procedura dettagliata: debug di un'applicazione di SharePoint tramite IntelliTrace