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 pre-test, teste de ação e ação post-test.Cada uma dessas ações por sua vez contém o seguinte:

  • um script T-SQL, que é executado em um banco de dados

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

O T-SQL script de teste na ação de teste é o único componente que você deve incluir em cada teste de unidade de banco de dados.Juntamente com o script de teste, você provavelmente também deseja especificar condições de teste para verificar se o script de teste retornou o valor ou conjunto de valores que você esperava.A ação de teste exercita ou altera um determinado objeto no banco de dados e, em seguida, avalia a alterar.

Para cada ação de teste, você pode incluir uma ação pre-test e uma ação post-test.Da mesma forma que a ação de teste, cada ação pre-test e cada ação post-test contém um script T-SQL e zero ou mais condições de teste.Você pode usar uma ação pre-test para se certificar de que o banco de dados está em um estado que permita que a ação de teste executar e retornar resultados significativos.Por exemplo, você pode usar uma ação pre-test para verificar se uma tabela contém dados antes do script de teste executa uma operação de dados.Depois que a ação pre-test prepara o banco de dados e a ação de teste retornará resultados significativos, a ação post-test retorna o banco de dados para o estado que estava antes de executar a ação pre-test.Em alguns casos, convém usar a ação post-test para validar os resultados da ação do teste.Isso ocorre porque a ação post-test 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.

Com essas três ações, há também dois scripts de teste (scripts referenciados para comum), que são executados antes e depois da execução de teste de unidade de banco de dados.sistema autônomo resultado, até cinco T-SQL scripts podem ser executados durante a execução de um único banco de dados de teste de unidade.Somente o script T-SQL contido dentro da ação de teste é obrigatório; os scripts comuns e os scripts de ação pre-test e post-test são opcionais.

A tabela a seguir fornece uma lista completa dos scripts que estão associados com 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 pre-test e testar ações no teste de unidade.O script TestInitialize é executado antes de cada teste de unidade em uma classe de teste determinado.Esse script é executado usando o contexto privilegiado.

Pre-teste

Script de teste

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

Teste

Script de teste

(Obrigatório) Esse script faz parte do teste de unidade.The script de teste é executado no banco de dados.Esse script pode, por exemplo, executar um procedimento armazenado que obtém, insere ou atualiza os valores da tabela.Esse script é executado usando o contexto de execução.

POST-teste

Script de teste

(Opcional) Esse script faz parte do teste de unidade.O script post-test é executado após um teste de unidade individual.Esse 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 teste determinado.Esse script é executado usando o contexto privilegiado.

Para obter mais informações sobre os diferentes contextos de segurança em que cada um desses scripts executados, consulte Visão geral das seqüências de conexão e permissões e a seção de permissões de teste de unidade de banco de dados na Permissões necessárias no banco de dados edição.

Ordem na qual são executar scripts

É importante compreender a ordem em que cada script é executado.Embora não 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:

Observação:

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

Inicialização e scripts de limpeza

No criador de teste de unidade de banco de dados, sistema autônomo scripts TestInitialize e TestCleanup são denominados scripts comuns.O exemplo anterior assume que os testes de duas unidade são parte da mesma classe de teste.sistema autônomo resultado, eles compartilham sistema autônomo scripts TestInitialize e TestCleanup mesmos.Para todos os testes de unidade dentro de uma classe de teste único, ela será sempre o caso.No entanto, se o tempo de execução de teste contém testes de unidade das classes de teste diferentes, os scripts comuns para a classe de teste associado serão executados antes e depois da execução de teste de unidade.

Se você escrever testes de unidade usando apenas o criador de teste de unidade de banco de dados, talvez não seja familiarizado com o conceito de uma classe de teste.Cada vez que você criar um teste de unidade abrindo o Teste menu e clicando em Novo teste, Database Edition gera uma classe de teste. Classes de teste são exibidos na O gerenciador de soluções com o nome do teste que você especificou, seguido por uma extensão .cs ou .vb.Em cada classe de teste, testes de unidade individuais são armazenadas sistema autônomo 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 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 auxiliar armazenado que você execute mais tarde, no script de teste para testar um outro procedimento armazenado.

Pre-teste e Post-teste Scripts

Os scripts que estão associados com ações pre-test e post-test provavelmente variar de uma unidade de teste para outro.Você pode usar esses scripts para estabelecer as alterações incrementais feitas no banco de dados e, em seguida, limpar essas alterações.

Consulte também

Conceitos

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

Visão geral da terminologia do banco de dados edição