在哪里测试黄瓜功能的链接?

时间:2011-08-27 17:44:40

标签: ruby-on-rails cucumber bdd code-organization scenarios

假设我将黄瓜特征安排在这样的文件中:

features/
├── add_project.feature
├── list_projects.feature

在我可以列出所有项目的页面上的应用程序中,我还有一个指向我可以创建新项目的页面的链接。我想用以下场景测试该链接:

Scenario: Link to create page is visible
    Given I am logged in as a staff member
    When I go to the projects page
    Then I should see a link to the create a project page

现在我的困境:我在哪里提出这种情况?

  • 将方案放入list_projects.feature
    • + 该链接位于列表项目页面
    • - 当我对列表项目功能感兴趣时,我不想阅读有关我如何添加项目的信息
  • 将方案放入add_projects.feature
    • + 当我阅读此功能的说明时,我也对用户将如何使用该功能感兴趣
    • + 如果我有多个指向该功能的链接,则会将它们全部收集到一个地方
    • - 功能和控制器的基本1对1映射已被破坏,对我来说,它感觉这会侵犯另一个测试的责任
  • 将场景完全放在其他地方。
    • 我不知道在哪里: - )

我相信人们之前已经遇到过这个问题,我想为应用程序建立一个指南,现在可以找到两种样式,这使得它更难维护。你输入的原因是什么?为什么?

1 个答案:

答案 0 :(得分:1)

我会在add_projects.feature

中包含该行为

虽然Cucumber的内置生成器似乎鼓励每个控制器映射一个功能,但这通常不是安排事情的最佳方式,所以不要担心违反惯例。