java - 为什么我的 Spring JUnit 测试规则没有运行?

标签 java junit4 spring-test serenity-bdd cucumber-serenity

我一直在努力寻找一个明显的解决方案来解释为什么链接的代码无法运行 JUnit TestRules。

我创建了一个 success case TestRules 执行的位置,以及 failure case这显示了 TestRules 失败的情况。

有人能明白为什么测试规则没有被采纳吗?不仅仅是 Spring 的 TestRule 没有被采纳。好像都是TestRules,源码中MyTestRule.java演示了。

在成功案例上运行mvn clean install,将看到所有测试都通过。但是,在失败情况下运行 mvn clean install 将产生以下失败:

    Tests run: 13, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.9 sec <<< FAILURE! - in net.serenitybdd.demos.acceptance.CalculateResults
net.serenitybdd.demos.acceptance.CalculateResults  Time elapsed: 1.454 sec  <<< FAILURE!
java.lang.AssertionError: expected:<3> but was:<1>
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.failNotEquals(Assert.java:743)
        at org.junit.Assert.assertEquals(Assert.java:118)
        at org.junit.Assert.assertEquals(Assert.java:555)
        at org.junit.Assert.assertEquals(Assert.java:542)
        at net.serenitybdd.demos.acceptance.CalculateResults.test(CalculateResults.java:60)


Results :

Failed tests:
  CalculateResults.test:60 expected:<3> but was:<1>

Tests run: 13, Failures: 1, Errors: 0, Skipped: 0

这是 Spring 的 SpringMethodRule 的结果没有被拾取,这可以在测试类net.serenitybdd.demos.acceptance.CalculateResults中看到。

有人有什么想法吗?

最佳答案

看来我正在使用 Cucumber 和 Serenity,并且出于哲学原因,Cucumber 团队目前不支持 JUnit TestRules。希望他们改变主意:)

参见https://github.com/cucumber/cucumber-jvm/issues/894

关于java - 为什么我的 Spring JUnit 测试规则没有运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34135455/

相关文章:

java - 带有java选择器的无限循环

java - 为什么由于假设失败而跳过的 junit 测试未报告为已跳过?

java - 使用构造函数注入(inject)模式对 spring boot 进行集成测试

java - Spring中的bean实例化和依赖注入(inject)

java - 禁用 Acceleo 引擎中的异常处理

java - 使用 Java 使用 Selenium WebDriver 检查页面上是否存在或显示元素的正确方法是什么?

java - Spring,无法在测试中加载ApplicationContext

junit - Mockito NotAMockException 当它显然是

java - 在文件上使用扫描仪并保存在阵列上

java - EasyMock.expect() 抛出空指针