2011-08-05 8 views
0

RSpec2 n'inclut pas d'assistant de test have_tag. L'utilisation des coupleurs have_tag ou have_selector de webrat n'est pas possible car Webrat et Rails 3 ne sont pas encore compatibles. Y at-il un moyen d'écrire utile RSpec voir tests? Il est possible d'utiliser assert_select au lieu de have_tag, mais alors on pourrait Test::Unit tests en premier lieu. Ou n'est-il plus recommandé d'écrire des tests de vue RSpec, car les tests d'intégration avec Capybara ou Cucumber sont meilleurs?RSpec View test avec Rails3 et RSpec2

Répondre

0

Webrat a causé trop de problèmes, il est également possible d'utiliser Capybara avec RSpec. Le DSL Capybara (avec les fonctions has_selector?, has_content?, etc.) est disponible pour les tests RSpec suivants: spec/requests, spec/acceptance ou spec/integration.

Si vous utilisez la dernière version de Capybara (~> 1.0.1) - les anciennes versions comme 0.4.0 ne soutiendra pas cela - et ajoutez les lignes suivantes à votre fichier spec_helper.rb

require "capybara/rspec" 
require "capybara/rails" 

vous pourrait écrire, par exemple le test suivant la demande RSpec

require 'spec_helper' 

describe "Posts" do 
    describe "GET /blog" do 
    it "should get blog posts" do 
     get blog_path 
     response.status.should be(200) 
     response.body.should have_selector "div#blog_header" 
     response.body.should have_selector "div#blog_posts" 
    end 
    end 
end 
1

En fait, Webrat fonctionne avec Rails 3. J'ai testé cela et j'ai pu utiliser le matcher de has_selector (has_tag ne fonctionnait pas).

Vous pouvez jeter un oeil à ce Google group discussion. Fondamentalement, vous n'avez pas besoin du bloc Webrat.configure mentionné dans le readme Webrat, et après la solution de la liste de diffusion, ajoutez ces lignes dans votre spec_helper.rb:

include Webrat::Methods 
include Webrat::Matchers 

Comme vous pouvez le voir, Webrat est pas mis à jour plus, alors oui, vous pourriez être mieux avec des tests d'intégration avec Cucumber (+ Capybara).

+0

-t-il travailler uniquement avec la version il dit, '> = 0.7.2.pre',: git => « http://github.com/kalv/ webrat.git '? – 0x4a6f4672

+0

@ 0x4a6f4672, je n'ai pas remarqué que dans leur discussion avant, donc je viens d'utiliser la saveur régulière de webrat. J'ai simplement ajouté 'gem 'webrat' 'dans mon Gemfile. – mikong

Questions connexes