Estou usando o Visual Studio 2010 Beta 2. Tenho um único [TestClass]
, que tem um [TestInitialize]
, [TestCleanup]
e alguns [TestMethods]
.
Sempre que um método de teste é executado, os métodos de inicialização e limpeza também são executados!
Fiquei com a impressão de que o [TestInitialize]
& [TestCleanup]
só deveria ser executado uma vez, por execução de teste local.
Isso está correto? Caso contrário, qual é a maneira correta de fazer isso?
esse é um comportamento bastante padrão para os conjuntos de testes: configuração e desmontagem antes e após cada teste. A filosofia é que os testes não devem depender um do outro. Se você deseja outro comportamento, provavelmente deve usar objetos estáticos que persistem entre cada teste.
fonte
Exemplo completo retirado da documentação da Microsoft :
fonte
Os métodos marcados com o atributo [TestInitialize ()] são usados para preparar aspectos do ambiente em que seu teste de unidade será executado. O objetivo disso é estabelecer um estado conhecido para executar seu teste de unidade. Você pode usar o método [TestInitialize ()] para copiar, alterar ou criar determinados arquivos de dados que seu teste usará.
Crie métodos marcados com o atributo [TestCleanUp {}] para retornar o ambiente a um estado conhecido após a execução de um teste. Isso pode significar a exclusão de arquivos em pastas ou o retorno de um banco de dados a um estado conhecido. Um exemplo disso é redefinir um banco de dados de inventário para um estado inicial após testar um método usado em um aplicativo de entrada de pedidos.
Para obter mais informações, consulte: http://msdn.microsoft.com/en-us/library/ms182517%28v=vs.100%29.aspx
fonte