2016-02-02 82 views
0

使用Chimp.js,Cucumberjs和WebdriverIO,我试图在浏览器实例中运行登录步骤定义之前,其他步骤定义依赖于用户登录并且可能不会一次又一次地将它们添加到每个功能文件的Background中。黄瓜 - Javascript的调用登录步骤定义之前其他步骤定义

这可能吗?我对Wedbdriver.io和Cucumber很陌生,任何建议都会有很大的帮助。请让我知道是否需要更多信息。

回答

1

我个人并不认为这是一个好主意。登录你的人必须指定用户是谁。稍后,当您的应用程序变得更复杂时,您可能会在不同用户之间进行交互从场景中隐藏任何这一点都不好。

你可以做的是结合用户规范和登录在单个步骤,例如

Given I am logged in as an admin 
Given Fred is logged in as a sales executive 

如果你是聪明的你是如何实现这些步骤,就可以让事情变得相当干燥从步骤定义提取的辅助方法和使用全局变量来存储例如人

Given 'I am logged in as an admin' do 
    @i = create_user role: admin 
    login as: admin, user: @i 

并在其他登录步骤中重复使用这些方法。

如果你很好地组织你的功能,你可以背景很多这些电话例如

Feature: Basic admin ops 
    Background: 
    Given I am logged in as an admin 

    Scenario: I can foo 
    When I foo 

    Scenario: I can bar 
    When I bar 

最后的一些想法...

每个场景有推动发展的特定部分。与写作“鉴于我已登录”的开发工作相比,这是微不足道的。

当出现问题时知道你应该登录是一个重要的信息。

+0

谢谢,感谢您的帮助。良好的视角。决定去解决这个问题。 –