MXUnit – funções setUp() e tearDown()

On 16 de fevereiro de 2012, in CFML, TDD, by andersonstraube

Continuando a série de posts sobre TDD (Test Driven Development), vamos explorar os métodos “setUp()” e “tearDown()”.

Na maioria dos frameworks de testes unitários temos esses dois métodos para a configuração do nosso teste:

setUp()

Este método é utilizado no início do processo de teste, ou seja, antes de executar cada teste nós preparamos o cenário com configurações anteriores a execução de cada caso de teste.

tearDown()

Este método é utilizado no final de cada caso de teste, ou seja, ele desfaz o que o setUp() criou.

Vamos ver na prática como utilizá-los:


<cfcomponent displayname="MeuComponenteTest" 
  extends="mxunit.framework.TestCase"
  hint="Componente exemplo de teste">
 
<cffunction name="setUp" access="public" returntype="void">
 
  <!--- Instancia o componente que queremos testar 
        e faz os set's necessários antes da execução dos casos de teste --->
  <cfset this.objTeste = createObject("component","Usuario").init() >  
  <cfset this.objTeste.setNome("Anderson Straube") />
  <cfset this.objTeste.setEmail("xxx@yyyy.com") />
 
</cffunction>
 
<!--- ...seus testes aqui... --->
 
<cffunction name="tearDown" access="public" returntype="void">
 
  <!--- Aqui eu limpo a variável "objTeste" --->
  <cfset this.objTeste = "" >  
 
</cffunction>
 
</cfcomponent>

Nosso componente herda a classe TestCase do framework (extends=”mxunit.framework.TestCase”), então o método setUp() é chamado, depois nosso método de teste e então tearDown().

Vale ressaltar que os métodos setUp() e o tearDown() são executados para cada caso de teste.

A idéia é que quando você precisa testar algo, o objeto deve estar em um estado conhecido, então o setUp faz isso, configura o objeto ao estado inicial desejado e normalmente o tearDown irá limpá-lo, uma vez que o objeto pode ter seu estado alterado em algum teste executado.

Até a próxima.

Tagged with:  

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *