使用Chimp.js、Cucumberjs和WebdriverIO,我尝试在浏览器实例中运行登录步骤定义,而不是依赖于要登录的用户的其他步骤定义。也可能不需要为每个特性文件一次又一次地将它们添加到Background中。
这个是可能的吗?我对Wedbdriver.io和Cucumber非常陌生,任何建议都会对我有很大的帮助。如果需要更多的信息,请告诉我。
发布于 2016-02-03 11:01:30
我个人认为这不是个好主意。要登录某个人,您必须指定用户是谁。稍后,当应用程序变得更加复杂时,您可能会在不同用户之间进行交互。将这一切都隐藏在场景中是不好的。
您可以做的是将用户规范和登录合并在一个步骤中。
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最后的想法..。
每个场景都是为了驱动特定的开发。与开发工作相比,编写“如果我登录了”是微不足道的。
当事情出了问题,知道你应该被登入是一个基本的信息。
https://stackoverflow.com/questions/35149053
复制相似问题