2012-03-08 128 views
1

我正在尝试关注TDD上的在线教程hereRuby on Rails TDD;测试时出错

在测试第一个应用程序时,出现错误。

我spec.rb代码是这样的:

require 'spec_helper' 

describe "Static pages" do 
    describe "Home page" do 

    it "should have the content 'Sample App'" do 
     visit '/static_pages/home' 
     page.should have_content('Sample App') 
    end 
    end 
end 

运行测试后,我得到这个错误:

Failure/Error: visit '/static_pages/home' 
NoMethodError: 
    undefined method `visit' for # <RSpec::Core::ExampleGroup::Nested_1::Nested_1:0xa833e5c># ./spec/requests/static_pages_spec.rb:8:in `block (3 levels) in <top (required)>' 

我会很感激你的帮助。

+0

这是否有帮助:http://stackoverflow.com/questions/8862967/visit-method-not-found-in-my-rspec – wintersolutions 2012-03-08 11:42:14

+0

什么是文件的路径和名称?它是spec/requests/static_pages_spec.rb像在教程中一样吗?我发现Rspec对于它的可用性和包含测试助手和基于文件名称的方法是相当“神奇”的。 – berkes 2012-03-08 11:43:05

回答

4

visit方法不是RSpec的一部分 - 它由capybara提供。只需添加到您的Gemfile:

gem 'capybara' 
+0

我已经安装了水豚,但我得到同样的错误?我看到安装在我的gemfile列表中的capybara 1.1.2以及“gem list”命令结果。你有什么主意吗? – scaryguy 2012-08-29 13:24:48

+0

@scaryguy只需在黑暗中拍摄一下 - 在'spec_helper.rb'中或者直接在你的规范中尝试'包括Capybara :: DSL'。 – Thilo 2012-08-30 02:19:36

+0

@Thilo昨天我解决了这个问题,谢谢:)现在,我忙着拉我的头发在nokogiri上工作...... – scaryguy 2012-08-31 01:31:05

0

试加:

require 'rails_helper' 
require 'spec_helper' 

您spec.rb 和:

require 'capybara' 

RSpec.configure do |config| 
    config.include Capybara::DSL 
.... 

到spec_helper.rb

和宝石'水豚','2.2.0'到gemfile