问题标签 [junit-rule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1919 浏览

unit-testing - 将 JUnit 自定义 @Rule 应用于特定的测试方法

我可以只为测试类中的特定测试方法运行自定义规则吗?

在上面的测试类中,我可以使用我的customRuleForOneEqualsOne规则仅用于测试方法test_OneEqualsOne而不用于test_TwoEqualsTwo.

我在 Stack Overflow 上看到过其他解决方案:

  1. 将两种测试方法移动到不同的类[说这个选项对于特定场景是不可能的](或)
  2. JUnit:@Before 仅适用于某些测试方法?如这篇文章所述

我可以以某种方式使用测试方法名称并跳过规则的执行,但这种方法的一个缺点是,每次我在特定类中为一组特定方法使用规则时,我都需要添加所有这些方法名称到一个列表中,看看它们是否被找到,以确定执行其余的逻辑。

有没有办法在测试类中为一组特定的测试方法使用自定义规则,而在同一测试类中的其他测试方法中忽略它们?

0 投票
1 回答
510 浏览

java - JUnit 规则和 cdi

我不太熟悉 cdi 或 JUnit Rule(事实上我刚刚发现了它们),但我尝试在这篇文章之后使用嵌入式 ldap-junit库(基于UnboundID LDAP SDK)测试我的 ldap api 。我准确地说我的 api 不是基于 UnboundId LDAP SDK 的!

这是我的代码:

当我尝试运行它时,我有以下异常:


我尝试使用 EmbeddedLdapRule 访问级别修饰符(私有、/受保护/公共)但没有成功。你能向我解释我做错了什么吗?非常感谢 !

0 投票
4 回答
7859 浏览

java - 如何在junit5中测试日志记录?

我正在一个项目中从 junit4 过渡到 junit5,并试图弄清楚如何测试日志。以前,我用

然后会使用 写一个断言outputCapture.toString(),例如

assertThat(outputCapture.toString(),containsString("status=200"));

由于@Rulejunit5中还没有实现注解,所以不能使用outputCapture。有什么想法可以代替吗?谢谢!

0 投票
3 回答
7594 浏览

java - Test the error code of a custom exception with JUnit 4

I would like to test the return code of an exception. Here is my production code:

And the corresponding exception:

My unit test:

0 投票
2 回答
1296 浏览

spring - 集成测试中的 Autowire JUnit 规则

我有一段代码将在多个集成测试中重复。代码将在测试之前和之后运行。我已经决定使用 JUnit@Rule将是实现这一目标的最佳方式。

问题是该规则需要访问少量的@AutowiredSpring bean。(测试使用 Spring Integration Test Runner 运行,因此 Autowire 工作正常。

我有一个规则:

我有我的上下文,我添加了我的 bean:

最后,我刚刚在测试文件中自动装配了规则 bean:

一切正常,但我从未真正使用过@Rule注释,而且我有点担心 JUnit 反射和 Spring Autowire 不能很好地结合在一起,或者会有一些乍一看并不明显的问题。

有人对这是否有效和安全有任何建议吗?

0 投票
0 回答
505 浏览

java - 尝试使用 JMock 在同一类中模拟方法,但它不是模拟相同的

我试图模拟在同一类中使用的方法,但它给了我例外。

期望 newId() 模拟返回 String id,它被添加到 List idList 并模拟到 insert(idList) 方法。

测试类是:

oneOf checkImpl 在实际课程中从未被嘲笑过。IdDao 在 CheckImpl 类中作为 @Resource 传递。

这是 CheckImpl 类。这不是完整的课程,但它告诉我在寻找什么。

错误如下,

0 投票
5 回答
52500 浏览

java - 如何在 JUnit 5 中替换 WireMock @Rule 注释?

我在我的测试中使用了 WireMock 并且有这样一行代码:

我想切换到 JUnit 5。所以我添加了下一个依赖项(使用 Gradle):

但是当我尝试导入@Rule注释时没有任何建议。

我是否需要添加另一个 JUnit 依赖模块?还是 JUnit 5 不支持规则?如果没有,我该如何替换@Rule注释以使测试再次工作?

0 投票
3 回答
1070 浏览

java - 通过 @Rule 在 JUnit 中初始化列表

我正在编写一个 JUnit 测试用例。我想初始化一个列表对象。为简洁起见,让我们初始化一个String对象列表:

执行时,我收到以下运行时错误:

当我简单地初始化 aMySQLContainer而不是List<MySQLContainer>.

为什么这不起作用?我该如何解决?

我的依赖项中有 JUnit 4.12。

0 投票
2 回答
587 浏览

groovy - Spock 测试框架 - 如何参数化 @Rule 资源?

我正在更新 Spock 测试。很少有模拟和@Rule资源:

我需要资源conf对两个不同的测试有所不同。所以我尝试了

但这没有用,因为resource创建一次。所以我不得不添加另一个资源。

但这感觉有点奇怪,而且从与 Spock 的短暂接触中,我相信它有更好的方法来解决这个问题。

如何参数化ResourceTestRule

它必须是 JUnit 规则,因为ResourceTestRule.

0 投票
1 回答
2370 浏览

java - 如何在 Junit5 中替换 DropwizardAppRule

在 Junit 4 我可以做类似的事情

如何在 Junit 5 中复制这种行为?从this github issue看来我需要使用@ExtendWith(DropwizardExtensionsSupport.class),但不清楚如何