Я хотел бы протестировать контроллер, который напрямую отображает некоторый вывод JSON (используя «render: json => @entity_names»). Для этой задачи я попытался в своем spec-файле «response.should have_text (« [enim »,« enita »]») ». К сожалению, я всегда получаю эту ошибку: Ошибка/ошибка: response.should have_text ('["enim", "enita"]') undefined method `has_text? ' для #response.should have_text приводит к неопределенному методу `has_text? '
Я пропустил какой-то камень, который обеспечивает этот метод? Вот мой 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
Не решает проблему. Еще неопределенный метод 'has_text? '. Я также не могу найти определение метода «has_text»? где-нибудь в моих драгоценных камнях, используя grep. Существует такой метод в огурце, но также добавление, что в Gemfile не удалось решить проблему (возможно, потому, что я не выполняю интеграционный тест). – Zardoz
Я собирался предложить установку Webrat, но я вижу, что он уже указан там (у меня была аналогичная проблема с RSpec и методом has_content, который был разрешен с Webrat). В отдельном примечании методы has_ * и has_ * реализуются с отсутствующими функциями метода, поэтому вы не найдете их в исходной дословной. – nocash