为什么 jBehave 中的复合步骤不先执行先决条件?

马什库姆

我正在使用 JBehave 自动化我的 Web 应用程序,我面临以下问题。

我创建了一个包含所有前提条件的复合步骤。当我运行这些步骤时,它首先执行复合步骤中的内容,而不是先运行前提条件。

如何使用复合步骤按顺序运行测试。请指教。

以下是我的步骤文件代码。

@Given("I see given step")
    public void given()
    {
        System.out.println("Inside GIVEN");
    }

    @Then("I see then step")
    public void when()
    {
        System.out.println("Inside WHEN");
    }

    @Then("I see when step")
    public void then()
    {
        System.out.println("Inside THEN");
    }

    @Given("I see composite step")
    @Composite(steps={"Given I see given step","Then I see then step","When I see when step"})
    public void composite()
    {
        System.out.println("Inside COMPOSITE");
    }

当我运行“给定我看到复合步骤”时,复合函数内部的 sysout 首先运行..我需要先执行先决条件。

谢谢!

汉莎

@Composite 中的步骤并不是实现 @Composite-Annotated-Method 的先决条件...

如果您对基于场景/故事的先决条件感到满意,您可以考虑JBehave Lifecycle

如果您在步骤基础上需要先决条件(如您所说),我会通过添加第四个 JBehave 步骤来伪造它,该步骤在您的 @Composite 块中称为最后一个。

鉴于你的例子:

    @Given("I see given step")
    public void given()
    {
        System.out.println("Inside GIVEN");
    }

    @When("I see when step")
    public void then()
    {
        System.out.println("Inside THEN");
    }

    @Then("I see then step")
    public void when()
    {
        System.out.println("Inside WHEN");
    }

    @Then("your step executed last")
    public void then()
    {
        // logic from composite()
        System.out.println("Inside COMPOSITE");
    }

    @Given("I see composite step")
    @Composite(steps={"Given I see given step","When I see when step","Then I see then step","Then your step executed last"})
    public void composite()
    {
         //logic got moved
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么先决条件的顺序在 makefile 中很重要?

为什么要在先决条件之前运行食谱?

Makefile先决条件列表中的分号是什么?

Haskell中无点功能的先决条件是什么

如何更改或自定义 JBehave 步骤?

Jbehave中的自定义故事记者

在报告中找不到JBehave资源

“示例表”在jbehave中显示待处理

在此makefile中,为什么总是要重新构建目标“ bunzip2 / data2.tar”的先决条件?

Makefiles:什么是仅订购先决条件?

jbehave步骤中是否可能有通配符?

为什么要在我的头文件先决条件的末尾附加“.o”?

在GNU Make文件中处理的只有订单的先决条件是什么?

JBehave如何在步骤之间保持对象状态

如何通过重复步骤使用jbehave参数

无法在Eclipse中的Jbehave中运行故事。需要逐步在Eclipse中设置Jbehave的用法以及所需的Jars详细信息

尝试学习spring或struts框架的先决条件是什么?

除了SQL,BigQuery的先决条件是什么?

CMake中是否提供了GNU Makefile中仅订购的先决条件,如果没有,替代选项是什么?

为什么我得到“程序集'* .dll”必须经过强符号签名才能被标记为先决条件。”?

JBehave错误地标识了具有相似步骤文本部分的两个步骤

为什么不将合并模式规则作为先决条件,我该如何做到这一点?

Apache Karaf中的功能vs捆绑包vs依赖关系vs先决条件vs需求之间有什么区别?

在规则的同一行上定义的变量的含义是什么,这些变量针对先决条件,例如GNU Make中的“ a:x = 0”?

如何在jbehave中的后一个场景中获取当前故事/场景

Golang:使用{{模板“ partial.html”的先决条件是什么?}}

使用 'dir &@ ' 作为仅订购先决条件的目的是什么?

为什么在启动步骤中需要“ MLO”?

为什么JavaScript中[]!== []?