Je voudrais tester un contrôleur qui restitue directement une sortie JSON (en utilisant "render: json => @entity_names"). Pour cette tâche, j'ai essayé dans mon fichier de spécifications "response.should has_text ('[" enim "," enita "]')". Malheureusement, je reçois toujours cette erreur: Échec/Erreur: response.should have_text ('["enim", "enita"]') méthode non définie `has_text? ' pour #response.should text devrait conduire à la méthode non définie `has_text? '
Est-ce que je manque une gemme qui fournit cette méthode? Voici mon 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
Ne résout pas le problème. La méthode encore indéfinie 'has_text? '. Je ne peux pas non plus trouver la définition de méthode de "has_text?" n'importe où dans mes gemmes en utilisant grep. Il y a une telle méthode dans le concombre, mais en ajoutant que le Gemfile n'a pas résolu le problème (peut-être parce que je ne fais pas de test d'intégration). – Zardoz
J'allais suggérer d'installer Webrat, mais je vois qu'il est déjà listé ici (j'ai eu un problème similaire avec RSpec et la méthode has_content qui a été résolue avec Webrat). Sur une note séparée, les méthodes has_ * et have_ * sont implémentées avec des fonctions manquantes, donc vous ne les trouverez pas dans la source verbatim. – nocash