Compartilhar via


Scripts em testes de unidade de banco de dados

Cada teste de unidade de banco de dados contém uma única ação de pré-teste, a ação de teste e a ação de pós-teste. Cada uma dessas ações por sua vez contém o seguinte:

  • um Transact-SQL script que executa em um banco de dados.

  • zero ou mais condições de teste avaliar os resultados retornados de execução do script.

O Transact-SQL testar o script no teste de ação é o único componente, você deve incluir em cada teste de unidade de banco de dados. Além de para o script de teste, você provavelmente também queira especificar condições de teste para verificar se o script de teste retornou o valor ou o conjunto de valores que você esperava. A ação de teste exercícios ou altera um determinado objeto no banco de dados e, em seguida, avalia essa alteração.

Para cada ação de teste, você pode incluir uma ação de pré-teste e uma ação de pós-teste. Da mesma forma que a ação de teste, cada ação de pré-teste e pós-teste de cada ação contém um Transact-SQL script e zero ou mais testar condições. Você pode usar uma ação de pré-teste para certificar-se de que o banco de dados está em um estado que permite que sua ação do teste é executado e retorna resultados significativos. Por exemplo, você pode usar uma ação de pré-teste para verificar se uma tabela contém os dados antes do script de teste executa uma operação de dados. Após a ação de pré-teste prepara o banco de dados e a ação de teste retornará resultados significativos, a ação de pós-teste retorna o banco de dados para o estado em que estava antes de executar a ação de pré-teste. Em alguns casos, você pode usar a ação de pós-teste para validar os resultados da ação de teste. Isso ocorre porque a ação de pós-teste pode ter privilégios de banco de dados maiores que a ação de teste. Para obter mais informações, consulte Visão geral das seqüências de conexão e permissões.

Além desses três ações, há também dois scripts de teste (conhecidos como comuns de scripts), que são executados antes e depois de execuções de teste de uma unidade de banco de dados. Como resultado, até cinco Transact-SQL scripts podem ser executados durante a execução de uma unidade de banco de dados único Test. Somente o Transact-SQL que está contido dentro da ação de teste do script é necessário; os scripts comuns e os scripts de ação de pré-teste e pós-teste são opcionais.

A tabela a seguir fornece uma lista completa dos scripts que estão associados a qualquer teste de unidade de banco de dados.

Ação

Tipo de script

Descrição

TestInitialize

Script comum (inicialização)

(Opcional) Esse script precede todas de pré-teste e testar as ações no teste de unidade. O script TestInitialize executa antes de cada teste de unidade em uma classe de determinado teste. Este script é executado usando o contexto privilegiado.

Pré-teste

Script de teste

(Opcional) Esse script é parte do teste de unidade. O script pré-teste é executado antes da ação de teste dentro de um teste de unidade. Este script é executado usando o contexto privilegiado.

Teste

Script de teste

(Obrigatório) Esse script é parte do teste de unidade. O testar o script executa o banco de dados. Esse script, por exemplo, talvez, executar um procedimento armazenado que obtém, insere ou atualiza os valores de tabela. Este script é executado usando o contexto de execução.

POST-Test

Script de teste

(Opcional) Esse script é parte do teste de unidade. O script de pós-teste é executado após um teste de unidade individual. Este script é executado usando o contexto privilegiado.

TestCleanup

Script comum (limpeza)

(Opcional) Esse script segue o teste de unidade. O script TestCleanup é executado após todos os testes de unidade em uma classe de determinado teste. Este script é executado usando o contexto privilegiado.

Para obter mais informações sobre a segurança em diferente contextos em que esses scripts executados, consulte Visão geral das seqüências de conexão e permissões e a seção permissões de testes de unidade de banco de dados Permissões necessárias para os recursos de banco de dados de Visual Studio.

Ordem na qual os Scripts são executados.

É importante compreender a ordem na qual cada script é executado. Embora seja possível alterar a ordem, você pode decidir quais scripts que você deseja executar. A ilustração a seguir inclui a seleção de scripts que você pode usar em uma execução de teste que contém dois testes de unidade de banco de dados e mostra a ordem em que são executadas:

Dois testes de unidade de banco de dados

ObservaçãoObservação

Alterações de implantação de banco de dados e geração de dados são aplicadas no início do execução de teste, antes dos scripts são executados. Essas alterações são aplicadas usando a seqüência de conexão de contexto privilegiado. Para obter mais informações, consulte Como: Configurar a execução do teste de unidade de banco de dados.

Inicialização e Scripts de limpeza

No Designer de teste de unidade de banco de dados, os scripts TestInitialize e TestCleanup são denominados scripts comuns. O exemplo anterior pressupõe que duas unidades de testes são parte da mesma classe de teste. Como resultado, eles compartilham os mesmos scripts TestInitialize e TestCleanup. Para todos os testes de unidade dentro de uma única classe de teste, isso é sempre o caso. No entanto, se a execução de teste contém testes de unidade a partir de classes de teste diferentes, os scripts comuns para a classe de teste associado serão executados antes e após o teste de unidade é executado.

Se você escrever testes de unidade usando apenas o criador de teste de unidade de banco de dados, você pode não estar familiarizado com o conceito de uma classe de teste. Sempre que você cria um teste de unidade, abrindo o teste menu e clicando em New Test, Visual Studio Premium gera uma classe de teste. Classes de teste são exibidos na Solution Explorer com o teste de nome que você especificou, seguido por uma extensão. cs ou. vb. Em cada classe de teste, os testes de unidade individual são armazenados como métodos de teste. No entanto, independentemente do número de métodos de teste (ou seja, testes de unidade), cada classe de teste pode ter zero ou um scripts de TestInitialize e TestCleanup.

Você pode usar o script TestInitialize para preparar o banco de dados de teste e você pode usar o script TestCleanup para retornar o banco de dados de teste para um estado conhecido. Por exemplo, você poderia usar TestInitialize para criar um procedimento armazenado de auxiliar executadas posteriormente, no script de teste para testar um procedimento armazenado diferente.

De pré-teste e Scripts de pós-teste

Os scripts que estão associados a ações de pré-teste e pós-teste provavelmente variam de uma unidade teste para a próxima. Você pode usar esses scripts para estabelecer as alterações incrementais no banco de dados e, em seguida, limpar a essas alterações.

Consulte também

Conceitos

Usando as condições de teste em testes de unidade de banco de dados