Compartilhar via


Testes de unidade para Private, Internal e os métodos de amigo

Normalmente, os métodos marcados como particulares, internos e amigo não estejam visíveis fora da classe que contém esses métodos. No entanto, o Visual Studio ferramentas fornecem testes de unidade com capacidade para acessá-los, mesmo que o arquivo de teste de unidade é uma classe de separada.

Embora você não precisará editar o arquivo de teste de unidade para permitir esses métodos, existem algumas opções que você pode fazer sobre como interno e os métodos de amigo são tratados. Este artigo explica essas opções e descreve o que acontece no seu projeto ao testar interna, privada e métodos do amigo.

ObservaçãoObservação

Para obter instruções sobre como criar testes de unidade, consulte Criando e executando testes de unidade para o código existente.

Métodos privados

Quando você cria um teste de unidade para um método particular, uma pasta de referências de teste é adicionada ao seu projeto de teste e um acessador é adicionado a essa pasta. Também é conhecido na lógica da unidade de testar o método do acessador.

Form1_Accessor target = new Form1_Accessor(); // TODO: Initialize to an appropriate value
Dim target As Form1_Accessor = New Form1_Accessor() ' TODO: Initialize to an appropriate value

Nesse acessador permite o teste de unidade chamar métodos privados no código que você está testando.

Manualmente, você pode criar um acessador ou recriar um que tenha sido excluída. Para fazer isso, o código que você está testando com o botão direito, aponte para Create Private Accessore selecione o projeto de teste que requer o acessador.

Interno ou métodos de amigo

Quando você cria um teste de unidade para um método interno em C# ou para um método de amigo de Visual Basic na Microsoft, aparece uma caixa de diálogo que permite que você escolha entre ter seus métodos internos acessados com o acessador particular ou com o InternalsVisibleToAttribute.

ObservaçãoObservação

A caixa de diálogo talvez não apareçam se o atributo já foi adicionado ao seu projeto.

Se você optar por ter seus métodos internos acessados com o InternalsVisibleToAttribute, o atributo é adicionado ao arquivo AssemblyInfo. cs. O atributo faz com que os métodos internos no código que você está testando disponível para o projeto de teste. Um novo atributo é adicionado para cada projeto de teste para o qual você pode escolher essa opção.

Se você optar por ter seus métodos internos acessados com o acessador particular, você verá o mesmo comportamento descrito anteriormente neste artigo para métodos particulares: uma pasta de referências de teste é adicionada ao seu projeto de teste, um acessador é adicionado à pasta e o acessador é chamado de método de teste na lógica da unidade. Nesse caso, o acessador particular fornece acesso internos e que você está testando métodos privados.

Se você optou por adicionar o InternalsVisibleToAttribute ao seu projeto, você ainda pode criar testes de unidade para métodos internos e eles acessaram com particular acessador em vez disso. No entanto, você tem que fazer isso, quando você cria o teste de unidade. No Criar o teste de unidade caixa de diálogo, clique em configurações. No Test Generation Settings caixa de diálogo, limpar o Atributo InternalsVisibleTo de honra caixa de seleção.

Consulte também

Conceitos

Anatomia de um teste de unidade

Testes de unidade e C++

Testes de unidade para métodos genéricos