我想測試直接呈現一些JSON輸出的控制器(通過使用「render:json => @entity_names」)。爲了這個任務,我嘗試在我的spec文件中「response.should have_text('[」enim「,」enita「]')」。不幸的是,我總是得到那個錯誤: 失敗/錯誤:response.should have_text('[「enim」,「enita」]') 未定義的方法`has_text?'爲#response.should have_text導致未定義的方法`has_text?'
我是否錯過一些提供該方法的gem?在這裏我的Gemfile:
source 'http://rubygems.org'
gem 'rails', '>= 3.0.0'
gem 'mysql2'
gem 'mongrel'
gem 'devise'
gem 'will_paginate', :git => 'git://github.com/mislav/will_paginate.git', :branch => 'rails3'
gem 'thinking-sphinx', :git => 'git://github.com/freelancing-god/thinking-sphinx.git', :branch => 'rails3', :require => 'thinking_sphinx'
group :test, :development do
gem 'rspec-rails', '>= 2.0.0.beta.19'
gem 'steak', :git => 'git://github.com/cavalle/steak.git'
gem 'webrat'
gem 'capybara'
gem 'capybara-envjs'
gem 'shoulda'
gem 'launchy'
gem 'autotest'
gem 'autotest-rails'
gem 'test_notifier'
gem 'rails3-generators'
gem 'factory_girl_rails'
gem 'populator'
gem 'faker'
gem 'random_data'
gem 'database_cleaner', :git => 'git://github.com/bmabey/database_cleaner.git'
gem 'delorean'
end
response.body.should have_text(...) – Eimantas 2010-10-01 05:34:25
不能解決問題。仍然未定義的方法'has_text?'。我也找不到「has_text?」的方法定義在我的寶石中的任何地方使用grep。在黃瓜中有這樣一種方法,但是也加入到Gemfile中並沒有解決問題(也許是因爲我沒有運行集成測試)。 – Zardoz 2010-10-01 12:29:15
我打算建議安裝Webrat,但是我看到它已經在那裏列出(我有一個與RSpec類似的問題,以及用Webrat解決的has_content方法)。在另一個註釋中,has_ *和have_ *方法是用缺少方法的函數實現的,所以你不會逐字地找到它們。 – nocash 2010-10-12 01:27:46