Pergunta

Eu estou querendo saber como as pessoas estão actualmente a redefinir os seus dados / limpar restos de teste para seus testes WatiN / Wartir?

Por exemplo, digamos que há um teste para adicionar um usuário no sistema e o nome de usuário tem de ser único. Obviamente, a primeira corrida sem quaisquer usuários deve funcionar bem, mas a segunda corrida irá falhar sem intervenção manual.

Foi útil?

Solução

Há um par de estratégias que você poderia fazer para isso, eu estou supondo que você está usando WatiN, com testes NUnit ou unidade VS para executar os testes.

Usar transações Uma abordagem que é usado quando o teste de unidade é que você "quebrar" todo o teste em uma transação e na conclusão da implementação de teste parte de trás da transação. Em .net você pode usar System.Transactions para isso.

Criar uma "página stub" Criar uma página em seu applicaiton que usa a lógica de negócios existente para apagar seus dados. Esta página que precisam ser protegidos e, idealmente, nem mesmo implantado para produção. Esta é a abordagem que eu recomendo.

Chamar um serviço web Desenvolver um serviço web, ou ligue para um diretamente da camada de aplicativo do applicaiton para executar a exclusão. Você provavelmente vai precisar para desenvolver isso também.

Limpar diretamente Construir algumas classes em seu código de teste para acessar os dados e limpá-lo.

Com qualquer um desses você vai precisar de limpeza antes e depois de executar o teste, ou seja, nos métodos de configuração de teste e limpeza de teste. A razão para fazê-lo duas vezes é que você deve assumir que o teste falhou e não limparam properley.

Use Linq para Sql AFAIK se você estiver usando LINQ to SQL, ele funciona na memória e envolve toda a atualização em uma transação para você automaticamente. Se você simplesmente não chamar os SubmitChanges (); método, então você deve estar bem, mas eu não testei isso mesmo.

Outras dicas

Eu pedi um desenvolvedor para fazer um script que irá redefinir banco de dados. Depois de um conjunto de testes, eu só chamar esse script e começar do banco de dados limpo.

Mike - sua pergunta não é exclusivo para Watir / WatiN. Aplica-se para qualquer teste de interface do usuário, de modo que procurar em torno de soluções semelhantes para Selenium, moinho de vento, e até mesmo testes de integração sem cabeça (HtmlUnit, testes de API, etc). Eu já respondi a essa pergunta algumas vezes pessoalmente em StackOverflow.

WatiN é para testar UI.

Para testar o cenário que você está procurando, você pode gerar identificação de usuário usando o código C # que irá torná-lo único (como contra a forma como ele é armazenado quando criou o teste).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top