Partager via


Procédure pas à pas : Vérifier le code SharePoint à l'aide de tests unitaires

Le test unitaire vous permet d'effectuer un débogage plus précis et de vérifier le bon fonctionnement de votre code. Cette procédure pas à pas explique comment incorporer le test unitaire dans une application SharePoint. Bien qu'elle utilise un type de projet SharePoint spécifique, n'importe quel projet de code SharePoint peut être testé à l'aide du test unitaire.

Commencez par un projet de définition de liste standard avec une instance de liste et un récepteur d'événements, puis ajoutez un test unitaire au code de récepteur d'événements qui ajoute une liste d'annonce à SharePoint. La création de l'annonce entraîne la modification de l'annonce par le récepteur d'événements. Le test unitaire vérifie que l'annonce a été modifiée comme prévu et renvoie les résultats.

Cette procédure pas à pas décrit les tâches suivantes :

  • Création d'une définition de liste avec une instance de liste à l'aide du modèle de projet Définition de liste.

  • Création d'un récepteur d'événements à l'aide du modèle de projet Récepteur d'événements.

  • Ajout et modification d'éléments de liste à l'aide de code.

  • Ajout d'un test unitaire à un projet SharePoint.

  • Exécution du test unitaire sur un projet SharePoint.

  • Affichage et interprétation des résultats de test unitaire.

    Notes

    Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. Ces éléments dépendent de l'édition de Visual Studio dont vous disposez et des paramètres que vous utilisez. Pour plus d'informations, consultez Utilisation des paramètres.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :

Création d'un projet de définition de liste

Tout d'abord, créez un projet de définition de liste avec une instance de liste.

Pour créer un projet de définition de liste

  1. Démarrez Visual Studio 2010 en sélectionnant l'option Exécuter en tant qu'administrateur.

  2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet. La boîte de dialogue Nouveau projet s'affiche.

  3. En haut de la boîte de dialogue Nouveau projet, sélectionnez .NET Framework 3.5 dans la liste déroulante.

  4. Dans la boîte de dialogue Nouveau projet, développez le nœud SharePoint sous le langage que vous souhaitez utiliser, puis sélectionnez le nœud 2010.

  5. Dans le volet Modèles, sélectionnez Définition de liste, puis cliquez sur OK.

    L'Assistant Personnalisation de SharePoint s'affiche. Utilisez le nom de projet par défaut, ListDefinitionProject1. Cet Assistant vous permet de sélectionner le site à utiliser pour déboguer le projet et le niveau de confiance de la solution.

  6. Sélectionnez Déployer en tant que solution de batterie, puis cliquez sur Suivant. Les fonctionnalités ALM fonctionnent uniquement avec les solutions de batterie.

  7. Dans la fenêtre Choisir les paramètres de définition de liste, cliquez sur Terminer pour accepter les valeurs par défaut. Cette opération crée une définition de liste Annonces et ajoute une instance de cette liste à SharePoint.

Ajout d'un récepteur d'événements à la définition de liste

Ajoutez un récepteur d'événements à la définition de liste pour pouvoir réagir aux modifications apportées à la définition de liste.

Pour ajouter un récepteur d'événements au projet

  1. Cliquez sur la définition de liste dans l'Explorateur de solutions.

  2. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

  3. Dans la boîte de dialogue Ajouter un nouvel élément, dans le volet Modèles installés, développez le nœud SharePoint, puis cliquez sur 2010.

  4. Dans la liste des modèles SharePoint, sélectionnez Récepteur d'événements, puis cliquez sur Ajouter. Utilisez le nom d'élément de projet par défaut, EventReceiver1.

  5. Dans la fenêtre Choisir les paramètres de récepteur d'événements, laissez le type de récepteur d'événements sur la valeur Liste des événements d'élément et utilisez la source d'événement par défaut.

  6. Dans la liste Gérer les événements suivants, sélectionnez Un élément est en cours d'ajout, puis cliquez sur Terminer. Cette opération crée un gestionnaire d'événements qui se déclenche lorsqu'une annonce est créée.

  7. Remplacez la méthode ItemAdding de la classe EventReceiver1 par le code ci-dessous.

    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. Ajoutez un point d'arrêt sur la ligne properties.AfterProperties. Ce code est utilisé ultérieurement lors du test du récepteur d'événements.

  9. Générez le projet.

Ajout d'un test unitaire au récepteur d'événements

Pour tester si le récepteur d'événements fonctionne correctement, ajoutez-y un test unitaire.

Pour ajouter un test unitaire au récepteur d'événements

  1. Dans le menu Test, cliquez sur Nouveau test. La boîte de dialogue Ajouter un nouveau test s'affiche.

  2. Dans Modèles, cliquez sur Assistant Test unitaire.

  3. Dans la liste déroulante Ajouter au projet de test, sélectionnez Créer un nouveau projet de test Visual C# ou Créer un nouveau projet de test Visual Basic, puis cliquez sur OK. Pour cet exemple, utilisez le nom de projet de test par défaut, TestProject1.

  4. La fenêtre suivante affiche une arborescence du projet de définition de liste. Développez les nœuds de l'arborescence jusqu'à ce que la méthode ItemAdding soit affichée.

  5. Activez la case à cocher en regard de la méthode ItemAdding, puis cliquez sur OK.

    Cette opération crée un projet nommé TestProject1 avec un module de code nommé EventReceiver1Test. Le module de code contient une méthode, ItemAddingTest, utilisée pour tester la méthode ItemAdding correspondante.

  6. Mettez en surbrillance le projet de test dans l'Explorateur de solutions, puis cliquez sur Pages de propriétés dans le menu Affichage.

  7. Dans les pages de propriétés du projet de test, cliquez sur l'onglet Application, puis sélectionnez .NET Framework 3.5 dans la liste déroulante Framework cible.

    La boîte de dialogue Modification du Framework cible s'affiche et demande si vous souhaitez modifier le Framework cible. Cliquez sur Oui. Cela permet de vérifier que la version du .NET Framework utilisée par le projet de test correspond à celle utilisée par le projet SharePoint.

  8. Ajoutez le code suivant en haut de la 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. Remplacez la méthode ItemAddingTest par le code suivant.

    <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());
        }
    }
    

    Ce code ouvre le site SharePoint et ajoute une nouvelle annonce. Lorsque la nouvelle annonce est ajoutée à SharePoint, le code dans le récepteur d'événements se déclenche, ce qui ajoute un commentaire à l'annonce. Le code du test unitaire vérifie que le récepteur d'événements a ajouté le commentaire à l'annonce en appelant Assert.AreEqual.

  10. Sélectionnez TestProject1 dans l'Explorateur de solutions, pointez sur Modifier les paramètres de test dans le menu Test, puis cliquez sur Local (local.testsettings). La fenêtre Paramètres de test s'affiche.

  11. Dans le volet gauche de la fenêtre Paramètres de test, cliquez sur Hôtes, puis sélectionnez Exécuter les tests dans un processus 64 bits sur un ordinateur 64 bits dans la liste déroulante Exécuter les tests dans un processus 32 bits ou 64 bits. Cliquez sur Appliquer, puis sur Fermer.

    Ce paramètre est nécessaire pour tester les applications SharePoint, qui sont 64 bits.

Déployer la solution

Après avoir créé la solution SharePoint et le test unitaire, déployez la solution SharePoint, puis modifiez le projet de démarrage. Le test unitaire requiert que le projet SharePoint soit en place sur le serveur SharePoint avant d'exécuter le test. Vous devez donc déployer le projet SharePoint. Après avoir déployé le projet, modifiez le projet de démarrage en test unitaire pour permettre le débogage F5.

Pour déployer la solution

  1. Cliquez sur Déployer la solution dans le menu Générer pour déployer la solution SharePoint.

  2. Cliquez avec le bouton droit sur TestProject1 et sélectionnez Définir comme projet de démarrage.

Exécuter le test unitaire

À présent que la solution SharePoint est en place et que le test unitaire est prêt, exécutez le test unitaire pour vérifier que le récepteur d'événements fonctionne correctement.

Pour exécuter le test unitaire

  1. Appuyez sur F5 pour exécuter le projet de test.

    Le code de test crée une annonce sur le site SharePoint, ce qui déclenche le récepteur d'événements.

  2. Lorsque le point d'arrêt est rencontré, appuyez sur F5 pour continuer.

    Cette ligne du récepteur d'événements ajoute un commentaire à la nouvelle annonce. Le code de test vérifie ensuite que le commentaire est présent dans l'annonce.

  3. La fenêtre Résultats des tests s'affiche et spécifie que ItemAddingTest a réussi. Double-cliquez sur ItemAddingTest dans la liste pour afficher les détails du test.

    Les détails des résultats des tests incluent des informations telles que le nom du test, les heures de début et de fin, et la durée du test.

Voir aussi

Concepts

Anatomie d'un test unitaire

Création et exécution des tests unitaires pour le code existant

Débogage avec IntelliTrace

Autres ressources

Vérification et débogage du code SharePoint à l'aide des fonctions ALM

Procédure pas à pas : Déboguer une application SharePoint avec IntelliTrace