gherkin - gherkins, 2个场景可以相互依赖吗
问题描述
Scenario1
When a new user clicks on sign up page
And provides login ID
Then user is signed up and can view profile page.
Scenario2
When user clicks on the edit profile page
And updates his address
Then updated profile should be visible to user
场景以相同的顺序写入功能文件中。在为此编写黄瓜文件时,我在场景 1 中创建了一个用户。在场景 2 中,正在更新同一个用户。在某种程度上,scenario2 依赖于 1,因为它正在更新在scenario1 中创建的同一用户。
我的问题是是否应该创建场景以便它们依赖于其他场景。或者它们应该彼此独立执行..在这种情况下,我应该在方案 2 中创建一个新用户,然后对其执行和更新并断言它。
解决方案
Cucumber 明确建议您不要让您的场景相互依赖。从常见问题解答:
“每个场景都应该是独立的;你应该能够以任何顺序或并行运行它们,而不会干扰另一个场景。
每个场景都应该准确地测试一件事,以便当它失败时,它会因为明确的原因而失败。这意味着您不会在另一个场景中重用一个场景。
如果您的场景使用相同或相似的步骤,或者在您的系统上执行类似的操作,您可以提取辅助方法来执行这些操作。”
(旁注:根据个人经验,我可以告诉你,相互依赖/系统状态的测试很快就会变得非常难以维护。我强烈建议你让你的测试独立!)
推荐阅读
- ios - How to import framework into XCode project?
- javascript - Reactjs handleChange 与更改数组中的子数据
- r - 如果您没有数据但知道斜率和 50% 点,如何构建 CDF?
- php - php数组计数4个深度数组中的值
- tinkerpop - gremlin 服务器中的最大连接池数
- java - 如何从字符串列表中连接字符串Java
- django - 我们如何在 Django ORM 中执行 left without foreign key
- php - 与使用三个 SQL 查询将信息从数据库中提取到 html 列中的冲突
- javascript - CSS 变换平移和缩放交互
- makefile - make/gmake:给定一个以多个../开头的变量,创建一个少一个../的变量