Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Testes mais elaborados

Boa tarde, André!

No tópico de passagem de parâmetros utilizando a notação "[Theory]", não percebi aplicação prática desta opção, pois os parâmetros não se relacionavam com o método que estava sendo testado. Você poderia fornecer um exemplo mais real desta alternativa, focando o relacionamento das entradas com o método que está sendo efetivamente testado?

Muito obrigado!

Gilberto.

1 resposta
solução!

Olá, Gilberto!

Entendo sua dúvida sobre a aplicação prática da notação "[Theory]" em testes de software. Essa opção é muito útil quando precisamos testar um método com diferentes entradas, mas que possuem a mesma lógica de processamento.

Por exemplo, imagine que temos um método que realiza a soma de dois números inteiros. Podemos utilizar a notação "[Theory]" para testar esse método com diferentes pares de números, sem precisar criar um teste para cada caso. Veja o exemplo de código abaixo:

[Theory]
[InlineData(1, 2)]
[InlineData(10, 20)]
[InlineData(-5, 5)]
public void TesteSoma(int a, int b)
{
    // Arrange
    int resultadoEsperado = a + b;

    // Act
    int resultadoObtido = MinhaClasse.Soma(a, b);

    // Assert
    Assert.Equal(resultadoEsperado, resultadoObtido);
}

Nesse exemplo, utilizamos a notação "[Theory]" para indicar que estamos testando uma teoria, ou seja, uma hipótese que deve ser validada. Em seguida, utilizamos a notação "[InlineData]" para indicar os diferentes pares de números que serão utilizados nos testes.

Dessa forma, podemos testar o método "Soma" com diferentes entradas, sem precisar criar um teste para cada caso. Além disso, o relacionamento entre as entradas e o método testado fica claro, pois estamos testando a soma de dois números inteiros em todas as situações.

Espero ter ajudado e bons estudos.

Ps: Estamos em processo de atualização constante dos conetúdos e criação de novos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software