小黄瓜,两种情况可以相互依赖吗

2024-02-28

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 中,正在更新同一用户。在某种程度上,场景 2 依赖于场景 1,因为它正在更新场景 1 中创建的同一用户。

我的问题是创建的场景是否应该依赖于其他场景。 或者它们应该独立于彼此的执行。在这种情况下,我应该在场景2中创建一个新用户,然后对其执行和更新并断言它。


Cucumber 明确建议您不要让您的场景相互依赖。来自FAQ's https://cucumber.io/docs/community/faq/:

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小黄瓜,两种情况可以相互依赖吗 的相关文章

  • if else 概念在功能文件(Gherkin 语言)中可用吗?

    无论如何 我们可以在功能文件中使用 if else 概念吗 例如 Scenario User should be able to check login page Given I am on login page When I click
  • 组织功能文件的最佳方式是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我尚未解决的一个挑战是以某种方式组织我的功能文件和场景 这样可以轻松地在 Specflow 和 BDD 中导航和探索 想象一下一年后有人想要来了解这
  • 行为:用动态示例编写场景大纲

    小黄瓜 行为Examples Gherkin 语法特点使用示例测试自动化 Feature Scenario Outline tutorial04 Scenario Outline Use Blender with
  • 如何从命令行执行 Cucumber Spring Boot 打包的 Jar?

    我对 cucumber jvm 世界相当陌生 尝试将 Cucumber Spring Boot 应用程序打包为 Jar 应用程序在 Eclipse 中运行良好 但是当我打包为可执行 jar 时 它失败并出现 Exception 主线程异常
  • 使用 Cucumber 截图

    我刚刚学会如何使用黄瓜 你能告诉我如何完成这段代码吗 您可以使用以下代码片段实现未定义步骤的步骤定义 Then I take a screenshot do pending express the regexp above with the
  • Cucumber Java - 如何在下一步中使用返回的字符串?

    我需要自动化一些网络服务 我为此创建了一些方法 并且我想使用 Cucumber 来实现这一点 但我不知道如何在下一步中使用返回值 所以 我有这个功能 Feature Create Client and place order Scenari
  • 如何用 Cucumber 解决 Selenium 中的 java.lang.NullPointerException?

    Register feature Feature The Registration Page Background Given The User is on the Registration Page Scenario The User S
  • 空手道 + 黄瓜报告缺少所调用场景响应的文档字符串

    Cucumber 报告缺少来自调用场景的响应的文档字符串 在给定的场景中 我使用 Call 调用多个场景 它的打印有时会随机响应所调用的场景 有时则不会 这阻碍了我们在测试报告中可视化API之间的数据流 尽管空手道日志有来自该调用场景的响应
  • Cucumber 在 JUnit5 中找不到任何功能

    我正在尝试在我的项目中设置 Cucumber 我遵循以前项目中的相同配置 但运行测试时仍然存在问题 现在我开始怀疑问题可能是这个项目使用的是 JUnit 5 而不是 4 我也将 junit4 添加到构建选项中 以便能够使用 jUnit4 执
  • 如何创建 Cucumber 数据表?

    我想使用 Java 而不是 Gherkin 手动设置 Cucumber 数据表 在 Gherkin 中 我的表格如下所示 h1 h2 v1 v2 到目前为止 我的 Java 看起来像这样 List
  • Cucumber @Before 钩子运行两次 @After 一次

    给所有人 目前正在写一个BDD测试自动化框架 使用Java11 Junit5 Cucumber Selenium 构建工具 Gradle 创建了一个用于验证 Google 标题的小测试 开始测试时 使用Test task在 Gradle 或
  • 我可以逃离specflow(或小黄瓜)中的管道吗

    我有一个我想要的规格流步骤表 管道 字符作为内容的一部分 Example Then the data should be Field Value SomeField a b c 但这行不通 如何转义管道字符 呸 我不敢相信我没有早点发现这个
  • 无法从 Maven 运行 Cucumber 测试

    我的 Maven 项目结构是 如果我尝试通过 eclipse 作为 JUnitTest CucumberRunnerTest java 运行该项目 则该项目运行良好 但如果我尝试通过 Maven 执行它 则会收到以下错误 pom如下
  • 如何在 Gherkin 中实现“if”

    我正在尝试将 Selenium 测试转换为 Gherkin 有没有办法在 Gherkin 中实现 if 语句 示例 假设代码按以下格式编写 我只是写如下描述 请理解双斜杠后面的部分是实际的 Selenium 代码 launch the ap
  • BDD 和 Behat 特殊字符

    有类似的问题 Behat 和输入验证场景中的 Gherkin https stackoverflow com questions 6561815 gherkin in behat and input validations scenario
  • 场景大纲的设置和拆卸 (cucumber-jvm)

    我在代码中使用场景大纲 并希望在场景大纲开始之前执行一些代码 并在场景大纲执行完成后执行一些代码 我知道黄瓜中有 Before 和 After 注释 但这些注释会在每个场景之前和之后执行 因此 如果我有一个场景大纲和 3 行示例数据 那么
  • Specflow 在具有场景上下文的表中使用参数

    我正在 C 中使用 Specflow 通过 Selenium 构建自动客户端浏览器测试 这些测试的目的是模拟客户在特定页面进入我们网站的业务场景 然后他被引导到正确的页面 我想在场景上下文中使用参数 例如 When I visit url
  • 使用 IntelliJ 的 Cucumber 找不到步骤定义

    我遇到了以下问题 我在 IntelliJ 中有四个 Cucumber 功能文件 我通过 IntelliJ 插件添加了 Cucumber 支持 创建功能后 我按如下方式编辑了配置 以便可以执行功能文件 Glue should be the n
  • 如何抑制 Cucumber/Junit 断言堆栈跟踪

    我有一个黄瓜场景 该步骤使用assertEquals 我的结果报告显示了对最终用户不友好的堆栈跟踪 我怎样才能抑制它 Scenario Add two numbers Given I have two inputs 3 and 2 When
  • Cucumber DataTable 错误 - io.cucumber.datatable.UndefinedDataTableTypeException:无法将 DataTable 转换为 cucumber.api.DataTable

    尝试使用 cucumber selenium java intelliJ 运行场景 但在其中一个步骤中出现有关 DataTable 的错误 在我开始使用测试运行程序并更改周围的一些内容之前 数据表工作正常并正确转换该步骤的参数 但我就是无法

随机推荐