有什么方法可以验证异常是否被捕获?我的意思是,在我的方法中,有一种情况是我应该捕获异常,并且在测试中我想验证异常是否真的被捕获。确认异常被Mockito和PowerMock捕获
5
A
回答
4
我认为答案是否定的 - 也许你可以通过一些激烈的反思来争辩,但如果是的话,我认为这不值得你花时间。
但我认为,(没有看到你的方法),你也许可以仍然可以得到全覆盖在你的方法:
- 如果你的方法捕捉异常后采取的任何行动,断言 或验证这些行动发生了。
- 如果捕获异常后,没有动作发生,断言或验证 ,无论行为是应该发生的,而是由 例外被切断,没有发生。
- 最后,(再次,没有看到你的方法,我不知道到底是什么 你处理),如果你的方法是无效的,并没有什么捕捉异常后会发生 和逻辑的最后一行是 什么可以抛出异常,然后考虑让你的方法返回一个 布尔值,如果捕获到异常,返回false,否则返回true 。然后在您的测试中,制作一个应该会导致 异常被抛出并捕获的场景,并测试该方法返回的错误为 。
1
很难给出任何建议没有任何示例。但是如果这个异常不会被捕获,那么它会一直持续到测试结束,测试会失败,因为抛出了一个异常。我知道这并不能证明它是在特定的区块中被捕获的,而只是它被捕获而已。
0
如果程序没有被捕获,那么这个异常会在你的程序中做什么? 如果它导致程序崩溃, 您可以在try {}块中运行您的Act部分测试。 如果它抛出一个异常,你可以捕捉它并且通过测试。
另一种选择,如果cacught异常导致一个被调用的方法, 说printToLog() 你可以请验证是否该方法是用正确的参数(使用的Mockito)确实叫。
0
你应该能够模拟你想抛出异常的元素,以便它抛出异常,然后检查是否没有调用其他方法,如果没有异常发生,将调用其他方法。
同时检查状态是否与引发异常时一样。
+0
如何解决空指针异常? –
相关问题
- 1. Netty异常未被正确捕获
- 2. F#异常未被捕获正确
- 3. Mockito Powermock
- 4. 异常不被捕获块捕获
- 5. SMTP异常被捕获
- 6. 异常未被捕获
- 7. java - 异常未被捕获
- 8. C++异常不被捕获
- 9. 异常被捕获两次
- 10. Java异常未被捕获?
- 11. Java异常未被捕获
- 12. C++异常没有被捕获捕获(异常型)
- 13. 捕获异常和
- 14. 异常未被捕获的异种?
- 15. 异步异常没有被捕获
- 16. Mockito + PowerMock gradle配置
- 17. Powermock + Mockito不工作
- 18. 使用mockito测试引发未被捕获的自定义异常的方法
- 19. 捕获异常
- 20. 异常捕获
- 21. 捕获异常
- 22. 捕获异常
- 23. 拒绝异常不被捕获
- 24. PHP异常未被捕获,laravel,流明
- 25. 为什么.net异常不被捕获?
- 26. C# - 任务异常未被捕获
- 27. 未被捕获的soapfault异常
- 28. Python异常没有被捕获
- 29. 为什么异常未被捕获?
- 30. 抓到的异常被捕获
我给了一个答案,但我可以给你做更精确的,如果你发布你正在测试的方法。 –