【问题标题】:robot framework - BDD style- No Given present机器人框架 - BDD 风格 - 没有给定的存在
【发布时间】:2021-08-18 05:17:52
【问题描述】:

在机器人框架中编写BDD风格的测试用例时,如果没有测试或关键字,那么在Given语句中应该写什么? 我正在使用机器人框架中的 BDD 样式编写 API 测试。但是对于将要执行的第一个测试,没有将要执行的 Given 语句。有没有我们可以使用的占位符? 请推荐

【问题讨论】:

    标签: api robotframework bdd


    【解决方案1】:

    如果没有 Given 语句,那么您应该跳过它。恕我直言,您也不应该为造型而写作。 BDD 旨在表达业务需求,并且有一个虚拟的 G-W-T 语句,不解释需求是没有意义的。

    例如,您的 BDD 应如下所示

    When the user registers only with First Name and Last Name 
    And doesn't enter Age 
    Then the error message "Please enter Age" should be displayed
    

    【讨论】:

    • 在这个特定的答案中,“给定”部分可能或应该是“鉴于用户未注册”。
    【解决方案2】:

    你跳过它,不要写它;或者,如果您确实想要一些东西 - 例如样式,请写 Given No Operation

    【讨论】:

      【解决方案3】:

      场景发生的背景总是有的。也许应用程序已经在运行,或者已经安装,或者您已经在主页上。对于 API,您提供的任何服务都是可用的。

      该上下文是您的Given

      行为的触发器——导致改变发生的事情——是事件,或者When

      通常情况下,当您启动应用程序或服务时,会创建一个默认状态。它没有触发因素。事情就是这样开始的。例如,您可能会看到如下内容:

      Given the Tetris game is running
      Then the grid should be empty
      

      如果您的场景关心游戏是否正确启动,您可以将其表述为When

      When I start the game
      Then the grid should be empty
      

      即便如此,也可能有:

      Given the game is installed
      

      如果使用 API,假设该 API 可用,我可能会在这里检查它是否真的可用(是的,我的意思是在 Given 中放置一个断言)。如果测试失败,通常是因为服务没有启动;这通常是因为您遇到了环境问题。这是标记它的好方法。

      也可以将步骤输入为英文,但在代码中将其留空,如果您对起始状态处于良好状态非常有信心。

      Given I am on Google.com
      

      BDD 中场景的目的不仅仅是自动化测试;它是用具体的例子来说明行为的意图和价值。所以假设你一无所有。没有互联网。没有申请。没有 API。要运行您的场景需要进行哪些更改?那是你的背景。我发现,对于那些开始的场景,缺少When 比缺少Given 更常见,因为没有用户触发任何事情。

      将您的场景视为带有示例的活文档,而不是测试,可能有助于澄清您需要包含的内容。 BDD 场景是测试作为通过对话进行探索和自动化结果的一个很好的副产品。

      您可能还喜欢4 different ways of handling Givens 上的这篇博文。

      【讨论】:

        猜你喜欢
        • 2010-09-06
        • 1970-01-01
        • 1970-01-01
        • 2018-04-25
        • 2021-05-05
        • 2021-10-31
        • 2018-02-03
        • 2016-04-26
        • 2018-01-07
        相关资源
        最近更新 更多