首页 > 解决方案 > 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 中创建一个新用户,然后对其执行和更新并断言它。

标签: gherkincucumber-javacucumber-junit

解决方案


Cucumber 明确建议您不要让您的场景相互依赖。从常见问题解答

“每个场景都应该是独立的;你应该能够以任何顺序或并行运行它们,而不会干扰另一个场景。

每个场景都应该准确地测试一件事,以便当它失败时,它会因为明确的原因而失败。这意味着您不会在另一个场景中重用一个场景。

如果您的场景使用相同或相似的步骤,或者在您的系统上执行类似的操作,您可以提取辅助方法来执行这些操作。”

(旁注:根据个人经验,我可以告诉你,相互依赖/系统状态的测试很快就会变得非常难以维护。我强烈建议你让你的测试独立!)


推荐阅读