简单的答案是您不必在一种情况下执行此操作。
你在这里做两件事:
- 注册
- 登录中
让我们先处理第二个。
要登录,我们必须注册,所以我们会得到一个类似的场景
Scenario: Sign in
Given I am registered
When I sign in
Then I should be signed in
但是我们如何注册呢?
Scenario: Register
Given I am a new user
When I register
Then I should be registered
现在我们如何实现这个
Given "I am a new user" do
@i = create_new_user
end
When "I register" do
register as: @i
end
Then "I should be registered" do
# Go look at something to see that we are registered
end
当这可行时,我们现在可以实现
Given "I am registered" do
@i = create_new_user
register as: @i
end
我们可以这样做,因为我们已经通过让我们的“注册”场景工作来创建注册的能力。
现在我们可以登录了
这就是 BDD 与 Cucumber 的工作原理。您致力于实现一些行为(通常在何时,例如注册)。然后您使用该行为(在 Givens 中),这样您就可以到达一个可以实施一些新行为的地方(登录)
希望那有帮助
更详细一点:
create_new_user、register 方法称为辅助方法。这些是编写更简单的步骤定义的关键。在 ruby 中,您可以将它们定义如下
module SignupStepHelper
def register
...
def create_new_user
...
end
World SignupStepHelper # makes it possible to call the methods in you step defs.