【发布时间】:2012-03-03 01:42:33
【问题描述】:
我正在尝试验证 Sinatra 应用程序的初始页面的开始,但我正在努力让测试框架正常工作。谷歌搜索建议我添加 cucumber/rails/rspec 或类似的,但我真的需要在不使用 Rails 时添加与 Rails 相关的库吗?
这是我的 Gemfile
source :rubygems
gem 'sinatra', '1.3.1'
gem 'json', '1.6.3'
group :test do
gem 'rspec', '2.7.0'
gem 'cucumber', '1.1.3'
gem 'capybara', '1.1.2'
gem 'rack-test', '0.6.1'
end
还有我的步骤:
Given /^a room needs to be surveyed$/ do
end
When /^I start a survey$/ do
survey_tool.start_a_survey
end
Then /^the system will prompt me for a survey summary$/ do
survey_tool.validate_start_a_survey_page
end
还有我的世界扩展
module KnowsTheUserInterface
class UserInterface
include Capybara::DSL
def start_a_survey()
visit '/start_a_survey'
end
def validate_start_a_survey_page ()
page.should have_content('Welcome')
end
end
def survey_tool
@survey_tool ||=UserInterface.new
end
end
World(KnowsTheUserInterface)
和我的环境
require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'survey_tool')
require 'capybara/cucumber'
require 'capybara/rspec'
Capybara.app = Sinatra::Application
Sinatra::Application.set :environment, :test
我收到的错误是
场景:开始调查# features/start_a_survey.feature:4
给定一个房间需要调查# features/step_definitions/start_a_survey_steps.rb:1
当我开始调查 # features/step_definitions/start_a_survey_steps.rb:5
然后系统会提示我提供调查摘要# features/step_definitions/start_a_survey_steps.rb:9
未定义的方法have_content' for #<KnowsTheUserInterface::UserInterface:0x007f910465fc38> (NoMethodError)
./features/support/world_extensions.rb:10:invalidate_start_a_survey_page'
./features/step_definitions/start_a_survey_steps.rb:10:in /^the system will prompt me for a survey summary$/'
features/start_a_survey.feature:7:in然后系统会提示我填写调查摘要'
【问题讨论】:
标签: ruby rspec cucumber sinatra capybara