Nunit: O resultado vazio do gerador `TestCaseSource` deve falhar no teste

Criado em 3 jun. 2020  ·  3Comentários  ·  Fonte: nunit/nunit

Ao usar [TestCaseSource(nameof(GeneratorMethod))] , faria sentido falhar no teste (ou marcá-lo como ignorado) se o gerador não produzir entradas. Pelo menos não mostre o teste como passando :/

Comentários muito úteis

Alguns pontos a considerar...

  1. Pode haver várias fontes, portanto, precisamos esclarecer se a discussão se aplica à fonte __each__ ou ao resultado agregado de todas as fontes.

  2. As fontes geram testes, não apenas dados. Se nenhum teste for gerado, não há nada para falhar ou pular. No passado distante (V2) geramos um falso teste de falha, que acabou sendo confuso no código e confuso para os usuários.

  3. Um método de teste sem casos é um pouco como um método sem código. Também como um acessório sem testes. Consideramos aqueles que passam.

  4. Se você chamar seu teste de teoria, será reprovado se não houver nenhum caso aprovado.

Eu votaria para deixar o comportamento atual, mas dando ao usuário alguma maneira de pedir uma mensagem de aviso se nenhum caso for gerado.

Todos 3 comentários

Se a memória serve, funciona como funciona devido a um relatório de bug alguns anos atrás, o que nos convenceu de que deveria passar neste caso.

😢

Acabei de escrever um teste com (atualmente) um item na fonte e, sendo um novo teste em um ciclo TDD, esperava que ele falhasse, apenas para descobrir que passou ... então tive que rastrear meu gerador defeituoso.

Talvez o fracasso seja um pouco draconiano (minha preferência, mas pode ser irritante para o repórter da edição anterior). Que tal marcar o teste como ignorado?

Alguns pontos a considerar...

  1. Pode haver várias fontes, portanto, precisamos esclarecer se a discussão se aplica à fonte __each__ ou ao resultado agregado de todas as fontes.

  2. As fontes geram testes, não apenas dados. Se nenhum teste for gerado, não há nada para falhar ou pular. No passado distante (V2) geramos um falso teste de falha, que acabou sendo confuso no código e confuso para os usuários.

  3. Um método de teste sem casos é um pouco como um método sem código. Também como um acessório sem testes. Consideramos aqueles que passam.

  4. Se você chamar seu teste de teoria, será reprovado se não houver nenhum caso aprovado.

Eu votaria para deixar o comportamento atual, mas dando ao usuário alguma maneira de pedir uma mensagem de aviso se nenhum caso for gerado.

Esta página foi útil?
0 / 5 - 0 avaliações