Pq não preciso colocar nenhum assert quando termino o meu método de teste com o dao.verify? Qual a relação entre o mock e o nunit? Sei que o verify retorna boolean mas o nunit cata isso automaticamente? Não precisa do assert?
insira seu código aqui
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Pq não preciso colocar nenhum assert quando termino o meu método de teste com o dao.verify? Qual a relação entre o mock e o nunit? Sei que o verify retorna boolean mas o nunit cata isso automaticamente? Não precisa do assert?
insira seu código aqui
Oi Diogo, tudo bem?
Pq não preciso colocar nenhum assert quando termino o meu método de teste com o dao.verify?
Depende. O método Verify() de um mock serve para verificar que um método foi chamado pelo objeto testado. Mas nada impede que você adicione outras verificações com Assert no mesmo teste.
Qual a relação entre o mock e o nunit?
O conceito de Mock não é exclusivo do NUnit. Ele existe em vários frameworks de teste.
Imagine um motor de carro. Você quer testar o funcionamento do motor apenas (teste unitário). Então você não precisa do carro inteiro para isso. O que você faz? Você faz um mock para simular cada um dos outros componentes do carro:

Então você precisa que os mocks se comportem de determinadas maneiras para testar o comportamento do motor. Por exemplo: o que acontece quando o pedal do acelerador (mock) é acionado? Você espera que o motor aumente as rotações por minuto de A para B. E quando o motor já estiver na rotação máxima definida pela fábrica? O motor não poderá aumentar as rotações, pois isso pode destruir o mecanismo do motor e provocar um acidente na estrada. Tudo isso é testado não com pedais de verdade, mas com esses "mocks" que os técnicos plugam na bancada de testes.
Sei que o verify retorna boolean mas o nunit cata isso automaticamente? Não precisa do assert?
Podemos pensar no seguinte:
Ambos têm funções diferentes e podem ser usados sozinhos, ou em conjunto, num mesmo teste.