Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Existem armadilhas comuns ao zombar de exceções com Mockito


Existem armadilhas comuns ao zombar de exceções com Mockito


Ao usar o Mockito para zombar de exceções, várias armadilhas comuns podem tornar seus testes menos eficazes ou mais difíceis de manter. Aqui estão algumas dessas armadilhas e como evitá -las:

1. Over-odock **

Uma das armadilhas mais significativas é a zombaria. Isso ocorre quando você zomba de muitas dependências, levando a testes frágeis e difíceis de manter. A superfície excessiva pode fazer com que os testes se concentrem mais nas zombarias do que no comportamento real do sistema em teste. Para evitar isso, concentre-se em zombar apenas dos colaboradores que têm comportamento não trivial ou aqueles cujas interações você deseja verificar. Use instâncias reais para colaborações simples [3].

2. Exceções inválidas **

O Mockito garante que a exceção que está sendo jogada seja válida para o método específico Stubbed. Se você tentar lançar uma exceção que não estiver na lista de exceções verificadas do método, o Mockito reclamará. Por exemplo, se um método não declarar `ioxception`, tentar zombar dele para lançar uma` ioexception` resultará em um erro [1]. Sempre certifique -se de que a exceção ridicularizada seja válida para o método.

3. Usando `thenthrow ()` com métodos vazios **

`Quando (). Thenthrow ()` não pode ser usado com métodos vazios porque não há valor de retorno para zombar. Em vez disso, use `Dothrow ()` para métodos void. Misturar esses métodos incorretamente pode levar a erros [2].

4. Falta de especificidade **

When mocking exceptions, it's crucial to be specific about which exceptions you are testing. Evite abalar demais, concentrando-se em exceções relevantes para o cenário de teste. Isso ajuda a manter os testes focados e sustentáveis ​​[2] [8].

5. Manuseio incorreto de execuções **

Verifique se o código do aplicativo está preparado para lidar com exceções corretamente, mesmo quando ridicularizado durante os testes. Isso inclui testar a lógica para lidar com exceções para garantir que ele se comporte conforme o esperado [2].

6. Uso de mensagens de erro significativas **

Ao zombar das exceções, inclua mensagens significativas para ajudar a diagnosticar problemas se os testes falharem. Essa prática aprimora a clareza e a eficácia de seus testes [2].

7. Testando a lógica de manuseio de exceção **

Certifique -se de que o código lida com exceções conforme o esperado. Isso envolve verificar se o aplicativo se comporta corretamente quando as exceções são lançadas, o que é crucial para a construção de aplicações resilientes [2].

8. Redefinição e limpeza manchas **

O Mockito fornece recursos como `reset ()` e `clearInvocation ()` para gerenciar zombarias. No entanto, estes devem ser usados ​​com moderação. A redefinição de uma simulação deve ser feita apenas em casos raros, como quando uma simulação é injetada por um contêiner e não pode ser recriada para cada teste. As invocações de limpeza podem ser úteis se recriar uma simulação levaria a uma sobrecarga significativa [1].

Ao estar ciente dessas armadilhas e seguir as melhores práticas, você pode efetivamente usar o Mockito para zombar de exceções e garantir que seus testes sejam robustos e sustentáveis.

Citações:
[1] https://www.toptal.com/java/a-guide-to-everyday-mockito
[2] https://www.browserstack.com/guide/mockito-tow-exception
[3] https://javanexus.com/blog/avoiding-mockito-testing-pitfalls
[4] https://stackoverflow.com/questions/9186604/mockito-exception-when-requires-an-argument-which-has-to-a-method-call-on
[5] https://stackoverflow.com/questions/22540108/best-practices-with-mockito
[6] https://stackoverflow.com/questions/52512548/mock-method-to-do-not-hrow-an-exception/52514628
[7] https://contributores.scala-lang.org/t/mockito-testing-nulls-and-exceptions/3915
[8] https://www.janbasktraining.com/community/java/throw-checked-exceptions-from-mocks-with-mockito