Press enter to see results or esc to cancel.

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!

Tweet about this on TwitterShare on FacebookShare on LinkedInEmail this to someone
Comments

1 Comment

Drops de testes - Testes de limites/fronteiras - High5Devs

[…] 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