Compartilhar via


Demonstra Passo a passo: Verifique se o código do SharePoint usando testes de unidade

Teste de unidade permite que você com mais precisão, depurar e verificar a operação do seu código. Esta explicação passo a passo demonstra como incorporar a unidade de teste em um aplicativo do SharePoint. Enquanto este passo a passo usa um tipo específico de projeto do SharePoint, qualquer tipo de projeto de código do SharePoint pode ser testado usando testes de unidade.

Começar com um projeto de definição de lista padrão com uma instância de lista e o receptor de eventos e, em seguida, adicione que um teste de unidade para o código de receptor de evento adiciona a lista de avisos para o SharePoint. A criação do anúncio faz com que o receptor de evento modificar o anúncio. O teste de unidade verifica se o anúncio foi modificado conforme o esperado e reporta os resultados.

Essa explicação passo a passo ilustra as seguintes tarefas:

  • Criando uma definição de lista com uma instância de lista usando o modelo de projeto de definição de lista.

  • Criando um receptor de eventos usando o modelo de projeto do receptor de eventos.

  • A adição e a modificação de elementos de lista por meio de código.

  • Adicionando um teste de unidade a um projeto do SharePoint.

  • Executando o teste de unidade em um projeto do SharePoint.

  • Visualizar e interpretar a unidade de resultados de teste.

    ObservaçãoObservação

    Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Trabalhando com configurações.

Pré-requisitos

Para completar este passo a passo, são necessários os seguintes componentes:

Criando um projeto de definição de lista

Primeiro, crie um projeto de definição de lista com uma instância de lista.

Para criar um projeto de definição de lista

  1. Iniciar 2010 de Visual Studio usando o Executar como administrador opção.

  2. No menu File, aponte para New, e em seguida, clique em Project. A caixa de diálogo New Project será exibida.

  3. Na parte superior do Novo projeto caixa de diálogo, selecione .NET Framework 3.5 na lista drop-down.

  4. No Novo projeto caixa de diálogo caixa, expanda o SharePoint nó sob o idioma que você deseja usar e, em seguida, selecione o 2010 nó.

  5. No modelos de painel, selecione Definição de listae em seguida, clique em OK.

    O O Assistente para personalização do SharePoint aparece. Use o nome de projeto padrão, ListDefinitionProject1. Este assistente permite que você selecione o site que você usará para depurar o projeto e o nível de confiança da solução.

  6. Selecione Deploy como uma solução do farme em seguida, clique em próximo. Os recursos ALM funcionam somente com as soluções de farm.

  7. No Escolher configurações de definição de lista janela, clique em Concluir para aceitar os valores padrão. Isso cria uma definição de lista de anúncios e adiciona uma instância dessa lista no SharePoint.

Adicionando um receptor de eventos para a definição de lista

Adicione um receptor de eventos para a definição de lista para que você possa responder às alterações feitas na definição de lista.

Para adicionar um receptor de eventos para o projeto.

  1. Clique na definição de lista no Solution Explorer.

  2. No menu Project, clique em Add New Item.

  3. No Add New Item na caixa a Modelos instalados painel, expanda o SharePoint nó e clique 2010.

  4. Na lista de modelos do SharePoint, selecione O receptor de eventoe em seguida, clique em Add. Use o nome de item de projeto padrão, EventReceiver1.

  5. No Escolha as configurações do receptor de eventos janela, deixe o receptor de evento digite como eventos de itens de lista e usar a fonte de evento padrão.

  6. No manipular os eventos a seguintes lista de seleção um item está sendo adicionadoe em seguida, clique em Concluir. Isso cria um manipulador de evento que dispara quando um anúncio é criado.

  7. Substituir o ItemAdding método de EventReceiver1 classe com o código a seguir.

    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. Adicionar um ponto de interrupção a properties.AfterProperties linha. Isso é usado mais tarde quando o receptor de evento de teste.

  9. Crie o projeto.

A adição de um teste de unidade para o receptor de evento

Para testar se o receptor de eventos está funcionando corretamente, adicione que um teste de unidade a ele.

Para adicionar um teste de unidade para o receptor de evento

  1. No menu Test, clique em New Test. A caixa de diálogo Add New Test aparece.

  2. Em modelos de, clique em Unit Test Wizard.

  3. No Add to Test Project suspenso, selecione um criar um novo projeto teste Visual C# ou criar um novo projeto de teste de Visual Basice, em seguida, clique em OK. Neste exemplo, use o nome de projeto de teste padrão, TestProject1.

  4. A próxima janela exibe um modo de exibição de árvore do projeto de definição de lista. Expanda os nós no modo de exibição de árvore até ver o ItemAdding método.

  5. Marque a caixa de seleção ao lado do ItemAdding método e então clique em OK.

    Isso cria um novo projeto chamado TestProject1 com um módulo de código chamado EventReceiver1Test. O módulo de código contém um método, ItemAddingTest, que é usado para testar o correspondente ItemAdding método.

  6. Realce o projeto de teste no Solution Explorer e clique Property Pages na Exibir menu.

  7. Nas páginas de propriedade para o projeto de teste, clique na aplicativo guia e, em seguida, selecione .NET Framework 3.5 na estrutura de destino na lista suspensa.

    O Alterar do Framework de destino caixa de diálogo aparece e pergunta se você deseja alterar a estrutura de destino. Clique em Yes. Isso garante que o.NET Framework versão usada pelo projeto de teste corresponde ao usado pelo projeto do SharePoint.

  8. Adicione o seguinte código na parte superior da 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. Substituir o ItemAddingTest método com o código a seguir.

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

    Esse código abre o site do SharePoint e adiciona um novo anúncio. Quando o novo anúncio é adicionado ao SharePoint, o código além de eventos disparadores de receptor, adicionando um comentário para o lançamento. O código no teste de unidade verifica para ver se o receptor de evento adicionado o comentário do anúncio chamando Assert.AreEqual.

  10. Selecionar TestProject1 no Solution Explorer, aponte para Editar configurações de teste sobre o teste menu e clique Local (local.testsettings). O As configurações de teste janela é exibida.

  11. No painel esquerdo do Testar configurações da janela, clique em Hostse selecione executar testes no processo de 64 bits na máquina de 64 bits na executar testes em 32 bits ou 64 bits processo na lista suspensa. Clique em Aplicare Fechar.

    Essa configuração é necessária para testar aplicativos SharePoint, que são de 64 bits.

Implantar a solução

Depois de criar a solução do SharePoint e a unidade testar, implantar a solução do SharePoint e, em seguida, alterar o projeto de inicialização. O teste de unidade requer que o projeto do SharePoint para ficar no lugar no servidor do SharePoint antes de testes, portanto você deve implantar o projeto do SharePoint. Depois de implantar o projeto, alterar o projeto de inicialização para o teste de unidade para permitir F5 de depuração.

Para implantar a solução

  1. Clique em Deploy Solution sobre o Build menu para implantar a solução do SharePoint.

  2. Com o botão direito TestProject1 e selecione Definir como projeto de inicialização.

Executar o teste de unidade

Agora que a solução do SharePoint está no lugar e o teste de unidade está pronto, execute o teste de unidade para verificar se o receptor de eventos está funcionando corretamente.

Para executar o teste de unidade

  1. Pressione F5 para executar o projeto de teste.

    O código de teste cria um novo anúncio no site do SharePoint, o receptor de evento de disparo.

  2. Quando o ponto de interrupção é encontrado, pressione F5 para continuar.

    Esta linha em que o receptor de evento adiciona um comentário para o novo anúncio. O código de teste, em seguida, verifica se o comentário existe o lançamento.

  3. O Resultados de teste janela é exibida e especifica que ItemAddingTest passado. Clique duas vezes em ItemAddingTest na lista para visualizar os detalhes do teste.

    Os detalhes do resultado de teste incluem informações como, por exemplo, o nome de tempos de teste, inicial e final e a duração do teste.

Consulte também

Conceitos

Anatomia de um teste de unidade

Criando e executando testes de unidade para o código existente

Depuração com IntelliTrace

Outros recursos

Verificando e depurando o código do SharePoint, usando os recursos ALM

Demonstra Passo a passo: Depurar um aplicativo do SharePoint usando IntelliTrace