Integration rails
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Sujet | Tests d'intégration Rails |
| Générateur | rails generate integration_test
|
| Framework | Rails / RSpec |
| Voir aussi | Autotest rails · Pages courantes |
Les tests d'intégration Rails vérifient l'enchaînement des pages et des liens. On se place dans un projet déjà en cours de construction (ex. rails_projects/sample_app).
Génération
rails generate integration_test layout_links
Exemple de test
# spec/requests/layout_links_spec.rb
require 'spec_helper'
describe "LayoutLinks" do
it "devrait trouver une page Accueil à '/'" do
get '/'
response.should have_selector('title', :content => "Accueil")
end
it "devrait trouver une page Contact à '/contact'" do
get '/contact'
response.should have_selector('title', :content => "Contact")
end
it "devrait avoir une page À Propos à '/about'" do
get '/about'
response.should have_selector('title', :content => "À Propos")
end
it "devrait trouver une page Aide à '/help'" do
get '/help'
response.should have_selector('title', :content => "Aide")
end
end
Routes
# config/routes.rb
match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
# Page d'accueil
match '/', :to => 'pages#home'
root 'pages#home'
Les routes nommées fournissent des helpers de chemin/URL :
about_path # => '/about'
about_url # => 'http://localhost:3000/about'
On remplace alors les liens en dur par les helpers :
<%= link_to "À Propos", '#' %>
<!-- devient -->
<%= link_to "À Propos", about_path %>