Skip to content

Muitos asserts no teste de criação de um domínio? Veja como resolver.

No artigo de hoje falo como deveria ser testado a criação de um objeto para não usar vários asserts ou vários métodos de teste.

Usar vários asserts em um teste pode indicar que está testando mais de uma coisa e na criação de um objeto usando testes normalmente não se tem como fugir.

Algumas vezes quando faço Code Review me deparo que o autor do código, para a criação de um domínio, ou cria um método com vários asserts ou cria vários métodos de teste com um assert. Até pouco tempo atrás eu tinha essa duvida também, hora fazia um e hora fazia outro.

Agora, na minha opinião, nenhuma das técnicas é a ideal, mas claro, na minha opinião. Abaixo um código de exemplo.

O primeiro exemplo mostra um teste com vários asserts. Note que nesse ainda ficou “bonitinho”, pois se tivermos um domínio grande as linhas só tendem a crescer.

No segundo teste, obedecemos o que os especialistas falam, mas com isso criamos vários testes que no fim fazem quase a mesma coisa, criar um curso. Essa abordagem é legal mas acaba criando mais linhas e mais linhas é mais código de teste para manter.

Quem tal termos uma terceira opção?

No código acima, estamos usando a biblioteca Expected Object, onde cria-se um objeto (esperado) anonimo para ser comparado ao objeto sob teste.

Note que agora não temos vários asserts ou vários métodos de teste, temos apenas uma coisa, simples e fácil de entender. A biblioteca em questão nos dá o poder para usar o método ToExpectedObject para comparar com o objeto do teste. Caso queria ver melhor a biblioteca e aprender mais acesse https://github.com/derekgreer/expectedObjects

Bom galera, hoje foi uma dica simples mas acredito que de valor.

Fiquem com Deus e até a próxima.

Gostou desse artigo? Que tal aprender mais?

Published inTestes

One Comment

  1. Rafael Teixeira Rafael Teixeira

    Que linda dica.

Deixe uma resposta

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