【问题标题】:Serenity Java predicate failedSerenity Java 谓词失败
【发布时间】:2022-01-10 00:23:24
【问题描述】:

我正在使用 Java 11.0.11 在 ScreenPlay 模式中通过 Serenity+Cucumber+Gherkin 开发一些自动化测试

已经完成了十多个stepDefinition 目前可以正常工作,但是这个:

//SomeStepDefinitions.java:
String bar = "my String";

105:       theActorInTheSpotlight().should(
                seeThat(
                        theActorInTheSpotlight -> XPATH_TARGET1.resolveFor(theActorInTheSpotlight).getText()
                        , equalTo(bar)
                )
        );

随意扔

TEST FAILED

17:04:45.023 [Test worker] DEBUG  - RELATED ISSUES: 
17:04:45.087 [Test worker] ERROR  -     Test failed at step: Then do something step definitions$$ lambda$796/0x00000001006ce840 should be Predicates.equalTo(my String)
17:04:45.087 [Test worker] ERROR  -     predicate failed

predicate failed
java.lang.AssertionError: predicate failed
    at net.serenitybdd.screenplay.ErrorTally.throwSummaryExceptionFrom(ErrorTally.java:38)
    at net.serenitybdd.screenplay.ErrorTally.reportAnyErrors(ErrorTally.java:32)
    at net.serenitybdd.screenplay.Actor.should(Actor.java:322)
    at stepdefinitions.Folder1.Folder2.SomeStepDefinitions.Foo(SomeStepDefinitions.java:105)

有什么想法吗?

【问题讨论】:

  • 我建议显示您的堆栈跟踪链接到的代码。
  • 相关代码已经贴出来了。 SomeStepDefinitions.java:105 是第一段代码的第三行。

标签: java intellij-idea gherkin cucumber-serenity


【解决方案1】:

对于遇到此问题的任何人,已经绕过了问题:

        theActorInTheSpotlight().attemptsTo(
                Ensure.that(FOO.value().answeredBy(theActorInTheSpotlight())).isEqualTo(bar)
        );

class FOO extends WebDriverQuestion implements Question<String> {
    @Override
    public String answeredBy(Actor actor) {
            return Text.of(XPATH_TARGET1).viewedBy(actor).asString();
    }
    public static FOO value(){
        return new FOO();
    }
}

我还是想知道为什么初始代码随机失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多