【问题标题】:Cucumber Step definition failing黄瓜步骤定义失败
【发布时间】:2012-05-16 00:51:16
【问题描述】:

我有一个失败的步骤定义。

从下面的功能中,我发现它在“并且该功能有问题”时失败(标题处未定义的局部变量)

Feature: Viewing issue
In order to view the issues for a feature
As a user
I want to see them on that feature's page
Background:    
    Given there is a release called "Confluence"
    And that release has a feature:
      | title                | description   |
      | Make it shiny!       | Gradients! Starbursts! Oh my! |
    And that feature has a issue:
      | title                | description   |
      | First Issue          | This is a first issue. |
    And I am on the homepage

  Scenario: Viewing issue for a given feature
    When I follow "Confluence"
    Then I should see "Standards compliance"
    When I follow "Standards compliance"
    Then I should see "First Issue" 
    And I should see "This is a first issue."

伙计们,我该如何编写步骤定义。

这就是我对特性定义所拥有的,它工作得很好,但我已经尝试对问题对象做同样的事情,但它不起作用

Given /^that release has a feature:$/ do |table|
  table.hashes.each do |attributes|
    @release.features.create!(attributes)
  end
end

【问题讨论】:

  • 您需要为“并且该功能有问题”步骤定义发布代码。

标签: ruby-on-rails-3 cucumber


【解决方案1】:

作为最佳做法,您不应在步骤中使用实例变量。这使它们相互依赖。

我会这样写你的步骤(在伪代码中):

Given there is a release called <name>
    # create model

Given release <name> has a feature <table>
    release = Release.find_by_name(<name>)
    # rest of your code here is fine, but reference 'release' instead of '@release'

Given release <name>'s <feature_name> has issues <table>
    release = Release.find_by_name(<name>)
    feature = release.features.find_by_name(<feature_name>)
    table.hashes.each do |attributes|
       # create issue
    end

那么你的 Cucumber 功能会像这样读起来更好:

Given there is a release called "Confluence"
And release "Confluence" has a feature:
  | title                | description   |
  | Make it shiny!       | Gradients! Starbursts! Oh my! |
And release "Confluence"'s "Make it shiny!" feature has issues
  | title                | description   |
  | First Issue          | This is a first issue. |

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多