【问题标题】:cucumber best practices黄瓜最佳实践
【发布时间】:2017-10-16 04:21:58
【问题描述】:

我的一位客户对使用 Cucumber 很感兴趣。 但我对此仍有一些疑问:

  1. 开发团队是否应根据 Gherkin 文件调整他们的代码?
  2. 我们是否应该从头开始一个项目以遵循 Cucumber 模式?
  3. 我们应该在哪里存储我们的规范文件(.feature 文件)?我们应该吗 只是将它们留在 Eclipse 的文件夹中?我们应该将它们上传到 测试管理工具,例如Testing?什么是最佳实践 管理他们?
  4. 我曾经使用 Selenium 页面对象模型并存储我的测试 Testink 中的案例。我应该用一个完整的黄瓜代替它吗 解决方案?看起来 Cucumber 的最佳实践不兼容 与页面对象模型。我错了吗?

任何帮助将不胜感激。 谢谢各位。

【问题讨论】:

    标签: cucumber pageobjects cucumber-java testlink


    【解决方案1】:

    这部分是见仁见智的问题。我会提出我的看法。其他人可能有不同的看法。

    1. Cucumber 不应采用该代码。代码应该是可测试的。这恰好符合您需要能够从测试或 Cucumber 中的步骤连接到代码的内容。

    2. 无需从头开始。如果代码是可测试的,就可以使用行为驱动开发(即对话、具体示例、自动验收测试、代码,按此顺序)来驱动开发。 在现有项目/产品上开始使用 BDD 是可能的,并且在大多数情况下是必要的,因为您已经有了工作目标。 BDD 只是一个手段,而不是一个目标。

    3. 功能文件应与源代码一起存储。也就是说,它应该像其他代码一样进行版本控制。 当您的持续集成服务器 Jenkins 或类似服务器在每次提交后构建系统时,它必须可用。如果将它们存储在其他地方,最终会在构建和验证系统时遇到问题。

    4. Cucumber 和页面对象模式之间没有冲突。您创建的场景,即系统应该如何工作的具体示例,被转换为实际执行某些操作的步骤。一个好习惯是将步骤委托给辅助对象。这些帮助器的一个例子是页面对象。

    在我看来,您需要了解有关行为驱动开发和 Cucumber 的更多信息。

    我有一些resources 可以帮助你。

    【讨论】:

    • 谢谢托马斯。我非常感谢您的意见。是的,你是对的,我对 Cucumber 完全陌生。我需要再次挖掘,但到目前为止你帮了我很多。我也会深入研究您的链接。
    • 很高兴能为您提供帮助。
    • 当页面具有共享功能时,PageObject 和 Cucumber 的冲突开始显现。带有 Cucumber 的 PageObject 成为额外的抽象和维护开销,因为在 Cucumber 中,步骤定义/方法本身已经是独立的单元。设计模式在测试自动化社区中很普​​遍,但在 Cucumber 中使用它实际上是反模式。您不必在每个框架中都使用它。
    • 在我们的例子中,我们从“PageObject”模型转移到“Components”模型,涵盖了“身份验证”、“导航”、“购买”等功能。这更适合 Cucumber。此外,您还可以在这里找到关于Cucumber best practices 的有趣帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    相关资源
    最近更新 更多