使用 Chimp.js、Cucumberjs 和 WebdriverIO,我尝试在浏览器实例中运行登录步骤定义,然后再执行其他依赖于用户登录的步骤定义。并且可能没有将它们添加到 背景
为每个特征文件一遍又一遍。
这可能吗?我对 Wedbdriver.io 和 Cucumber 很陌生,任何建议都会很有帮助。如果需要更多信息,请告诉我。
最佳答案
我个人认为这不是一个好主意。要登录某人,您必须指定用户是谁。稍后当您的应用程序变得更加复杂时,您可能会在不同用户之间进行交互。从场景中隐藏任何这些都不好。
您可以做的是在单个步骤中结合用户规范和登录,例如
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
一些最后的想法......
每个场景都可以插入特定的开发。与编写“Given I am logged in”的开发工作相比是微不足道的。
当出现问题时,知道您应该登录是一条重要信息。
关于testing - Cucumber - Javascript 在其他步骤定义之前调用登录步骤定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35149053/