Drops de testes – Caso de teste
Estamos fazendo uma série de artigos sobre testes do básico ao avançado com posts todas as terças, você pode ver todos os posts clicando aqui ou ver o post anterior clicando aqui.
O caso de teste é um recurso muito útil quando temos que testar mais de um cenário para a mesma estrutura de teste. Quando temos um mesmo arranjo, mesma ação e mesmo tipo de asserção, ao invés de escrevermos vários testes com o código repetido, podemos utilizar os casos de testes.
Caso de teste
O caso de teste, como o nome diz, é a execução da simulação de um cenário, que pode ser um valor de entrada diferente e um resultado esperado também diferente a depender do valor do parâmetro de entrada que será executado no método que está sendo testado.
Por exemplo, um método que recebe um modelo de carro como parâmetro e retorna a construtora do carro. Neste caso o método será sempre o mesmo, a asserção também será sempre igual, alterando apenas o valor informado e o valor esperado.
Antes de prosseguirmos, ressalto que os exemplos que veremos são com o framework de testes NUnit, mas a abordagem de casos de teste se aplicam em outros frameworks como XUnit, JUnit, VS Test, confira a sintaxe na documentação de cada framework
Recebendo um parâmetro
No exemplo abaixo, vamos validar um método que deve receber um estado e verificar se o estado informado é do Brasil. Para ser validar o estado, o método deve eliminar os espaços no começo e no fim do parâmetro recebido. Por exemplo, se o parâmetro recebido for ” São Paulo” o método deve aplicar o método Trim() na string e tratar como “São Paulo”.
Veja o exemplo dos casos de teste abaixo:
[TestCase(" São Paulo")] [TestCase("São Paulo ")] [TestCase("São Paulo")] public void DeveIgnorarEspaçosERetornarSeOEstadoÉNoBrasil(string estado) { //Arrange var minhaClasse = new MinhaClasse(); //Act var resposta = minhaClasse.EstadoÉNoBrasil(estado); //Assert Assert.IsTrue(resposta); }
Recebendo um valor esperado
Agora que nós já sabemos passar um valor por parâmetro, nós vamos validar que o resultado da execução do método também será o que informamos por parâmetro.
No exemplo, temos um método que ao receber um estado, irá retornar qual é o país referente ao estado. Para isto, vamos receber por parâmetro o nome do estado e o país.
Veja o exemplo abaixo:
[TestCase("Amazonas", "Brasil")] [TestCase("Washington", "EUA")] [TestCase("Bahia", "Brasil")] public void DeveRetornarPaísDoEstadoInformado(string estado, string país) { //Arrange var minhaClasse = new MinhaClasse(); //Act var resposta = minhaClasse.RetornaOPaísDoEstado(estado); //Assert Assert.AreEqual(país, resposta); }
Com os casos de teste nós conseguimos diminuir a repetição de código nos nossos testes e alcançamos um maior número de cenários com facilidade.
Ficou alguma dúvida? Posta nos comentários!
Até a próxima terça!
Comments
1 Comment
[…] Estamos fazendo uma série de artigos sobre testes do básico ao avançado com posts todas as terças, você pode ver todos os posts clicando aqui ou ver o post anterior clicando aqui. […]
Leave a Comment