使用Cucumber测试表单提交

时间:2010-12-24 02:38:49

标签: cucumber ruby-on-rails-3

我在演示网站上为表单编写了一个简单的Cuke功能。该功能看起来像这样。

    Given I am on the home page
    When I set the "Start Date" to "2010-10-25"
    And I set the "End Date" to "2011-1-3"
    And I press the "Go" button
    Then I should see "Cake Shop"

我的想法是,在按下Go按钮后,将加载一个新页面,显示结果列表,其中一个结果应为“Cake Shop”。

但我还没有设法让它发挥作用。有什么东西我不见了吗?

编辑:这是步骤定义。

Given /^I am on the "([^"]*)" page$/ do |page|
  visit root_path
end

When /^I set the "([^"]*)" to "([^"]*)"$/ do |field, date|
  fill_in field, :with=>date
end

When /^I press the "([^"]*)" button$/ do |arg1|
  click_button('Go')
end

最后一步是在web_steps.rb中定义的。我相信....而且它始终在那里失败了。

expected #has_content?("Cake Shop") to return true, got false
     

(RSpec的::期望:: ExpectationNotMetError)       ./features/step_definitions/web_steps.rb:110:in   '阻止(2级)'

1 个答案:

答案 0 :(得分:1)

  1. 如果您正在使用Capybara进行测试,则“然后向我显示该页面”将把当前页面的HTML放入tmp文件夹,看一下。

  2. 数据“蛋糕店”来自哪里?在运行测试之前是否重置了数据库?通常,如果您的黄瓜需要一些设置数据,最好明确说明数据存在一个步骤并为每个测试插入它。 e.g。

    鉴于项目“蛋糕店”存在