如何在另一个场景中使用beforehook调用Cucumber场景

时间:2018-05-03 07:32:33

标签: angularjs protractor cucumber hook

我正在使用带黄瓜的量角器。 我有一个场景,我需要将另一个场景称为前置条件。 模式是这样的:

场景1:

@test1
Scenario: first scenario

场景2:

@test2
//Need to call the first scenario as the pre-condition
Scenario: second scenario

在这里,我想使用黄瓜钩。 所以,我的钩子文件是这样的:

this.Before({tags: ["@test2"]}, function (event, callback) {
        console.log('call the first scenario');
        this.feature(tags: ["@test1"]);
        callback();
    });

有人可以告诉我该怎么办 “this.feature(tags:[”@ test1“]);”

1 个答案:

答案 0 :(得分:0)

在Cucumber中,您使用Given。

进行设置

在你的情况下,你需要编写一个给你的第一个场景做的东西。现在的问题是你如何优雅地做到这一点

如果将所有步骤定义实现为对辅助方法的单个调用,则这变得相当容易。由于每个步骤定义只是一个调用,您可以将方案1转换为一系列调用,例如foo,bar,baz

现在针对方案2及其给出的方法,编写一个新方法scenario 1,只重复调用,例如。

def scenario1 foo bar baz end

通过这样做,您已经将问题从Cucumber中解决出来,并使用您正在实施步骤的编程语言。这种方法有一点陡峭的学习曲线,你必须

  1. 了解如何使用您选择的语言编写帮助方法
  2. 了解如何在功能之间共享帮助方法
  3. 当你使用JAVA并且我使用Ruby时,我无法帮助你。我知道它在Java中要比Ruby复杂得多。然而,它绝对值得学习如何做到这一点,因为这将使你能够让你的所有的傻瓜更简单,并提供你的机会,使他们更快。