Integration rails

De wiki.nexiat.fr
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 %>

Voir aussi