![]() |
1
2123
Junit 4对此提供了支持:
|
![]() |
2
1221
编辑
既然Junit5已经发布了,最好的选择是使用
如果您没有迁移到JUnit 5,但可以使用JUnit 4.7,则可以使用
这比
见 this article 详情 |
![]() |
3
431
小心使用预期的异常,因为它只声明 方法 抛出了那个异常,而不是 特定代码行 在测试中。 我倾向于将其用于测试参数验证,因为此类方法通常非常简单,但更复杂的测试可能更好地用于:
运用判断。 |
![]() |
4
197
正如前面所回答的,JUnit中有许多处理异常的方法。但是在Java 8中还有另一种:使用lambda表达式。使用lambda表达式,我们可以实现如下语法:
断言引发接受一个函数接口,该接口的实例可以用lambda表达式、方法引用或构造函数引用创建。接受该接口将期望并准备处理异常时引发的断言。 这是一种相对简单但功能强大的技术。 看看这篇描述这种技术的博客文章: http://blog.codeleak.pl/2014/07/junit-testing-exception-with-java-8-and-lambda-expressions.html 披露:我是博客和项目的作者。 |
![]() |
5
95
在JUnit中,测试异常有四种方法。
|
![]() |
6
71
DR
无论是6月4日还是6月5日。 长篇小说
你可以给自己写一封
自己动手
但是这种方法不太优雅,也不太好混合 可读性方面 使用其他工具。
因此,以上这些选项都有它们所有的警告,而且显然不能免疫编码错误。
我想总结一下,今天(2017-03-03)
断言J
易用性、可发现的API、快速的开发速度以及
事实上的
测试依赖性是JDK8的最佳解决方案,不管测试框架(JUnit与否),以前的JDK应该依赖于
此答案已从复制 another question 没有相同的可见性,我是同一个作者。 |
![]() |
7
40
既然Junit 5已经发布了,最好的选择是使用
下面是一个验证抛出异常并使用 Truth 要对异常消息进行断言,请执行以下操作:
与其他答案中的方法相比,优势在于:
类似的方法将添加到
|
![]() |
8
37
这个怎么样:捕获一个非常普通的异常,确保它不在catch块中,然后断言该异常的类是您期望的。如果a)异常类型错误(例如,如果改为使用空指针),以及b)从未引发异常,则此断言将失败。
|
![]() |
9
31
使用一个 AssertJ 断言,可与JUnit一起使用:
这比
|
![]() |
10
30
为了解决同样的问题,我设立了一个小项目: http://code.google.com/p/catch-exception/ 用这个小助手你会写
这比JUnit 4.7的ExpectedException规则更详细。 与skaffman提供的解决方案相比,您可以指定期望异常出现在哪一行代码中。我希望这有帮助。 |
![]() |
11
30
BDD 风格解决方案: JUnit 4 + Catch Exception + AssertJ
源代码依赖关系
|
![]() |
12
24
更新:
JUnit5改进了异常测试:
以下示例来自: Junit 5 User Guide
使用JUnit 4的原始答案。 有几种方法可以测试是否引发了异常。我在我的帖子中也讨论了以下选项 How to write great unit tests with JUnit
设置
使用
测试用
您可以在中阅读有关异常测试的更多信息 JUnit4 wiki for Exception testing 和 bad.robot - Expecting Exceptions JUnit Rule . |
![]() |
13
20
您也可以这样做:
|
![]() |
14
12
imho,在junit中检查异常的最佳方法是try/catch/fail/assert模式:
这个
|
![]() |
15
11
Junit 5解决方案
关于Junit 5的更多信息 http://junit.org/junit5/docs/current/user-guide/#writing-tests-assertions |
![]() |
16
10
我在这里尝试了许多方法,但它们要么很复杂,要么不完全符合我的要求。实际上,可以非常简单地编写一个助手方法:
这样使用:
零依赖性:不需要mockito,不需要powermock;并且可以与最终类一起工作。 |
![]() |
17
8
JUnit对此有内置支持, "expected" attribute |
![]() |
18
8
Java 8解决方案如果您想要一个解决方案:
我写了一个实用函数:
使用方法如下:
|
![]() |
19
8
最灵活和优雅的答案是我在
Mkyong blog
. 它具有
|
![]() |
20
7
在我的例子中,我总是从数据库中得到runtimeexception,但是消息不同。异常需要分别处理。以下是我测试它的方法:
|
![]() |
21
5
只需制作一个可以关闭和打开的匹配器,如下所示:
使用它:
添加
|
![]() |
22
5
在JUnit4或更高版本中,您可以按以下方式测试异常
|
![]() |
23
5
我们可以在必须返回异常的方法之后使用断言fail:
|
![]() |
24
4
除了什么 NamShubWriter 已经说过,确保:
做 不 这样做:
最后, this 博客文章清楚地说明了如何断言抛出了某个异常。 |
![]() |
25
1
例如,您想要为下面提到的代码片段编写JUnit
上面的代码是测试可能发生的一些未知异常,下面的代码是用自定义消息断言一些异常。
|
![]() |
26
1
我建议图书馆
在Java 8中,像这样:
|
|
27
0
使用Java 8,可以创建一种方法,该方法采用代码检查和预期异常作为参数:
然后在测试中:
效益:
|
![]() |
28
0
我的解决方案使用Java 8 lambdas:
您必须定义一个功能接口,因为
该方法的使用方法如下:
|
![]() |
29
0
编写测试用例有两种方法
我希望这能回答你的问题 快乐学习… |
![]() |
30
0
带有java8的JUnit4解决方案将使用此功能:
然后使用:
请注意,唯一的限制是使用
|