Le Coin Wiki
d'Olivier Dalle
$WikiTagline
 

Exercices de repchage

L’exercice sur les feuilles de style est requis dans les 2 groupes de TP pour avoir une note de repchage:

  • Pour les tudiants du groupe 1, cet exercice sera not et la note servira de note de repchage (sauf cas 3 ci-aprs)
  • Pour les tudiants du groupe 2, cet exercice DOIT m’tre rendu afin d’avoir une note de repechaqge, mais la note sera calcule sur le 2d exercice ci-aprs
  • Par mesure d’quit, les tudiants du groupe 1 qui le souhaitent peuvent aussi me rendre l’autre exercice. Dans ce cas, le rsum ne sera pas not, seule la note du 2e exo comptera.

Feuille de style magnifiques

Lisez cette section du chapitre 5 du livre support et faites un resume par crit que vous enverrez par courrier lctronique au resppnsable de TD. Vus serez notez sur votre rapidit et la qualit de votre rsum (le premier a envoyer un rsum complet sans faute obtient 20/20. Si la note obtenue est meilleure, elle remplacera celle du 1er test WIMS.

Utilisateurs avec mots de passe

Envoyer l’adresse de votre repository sur github ou je peux rcuperer une version de example_app qui implmente la totalit du chapitre 6 (utilisateur + mots de passe) et les tests correspondant. 20/20 si le code est complet, les tests s’excutent bien et sont tous au vert, et je recois le lien vers la version qui marche avant 15:00. (attention si vous sauvez (commit) une version aprs 15h, je n’en tiendrai pas compte). Pensez-donc a faire des commits rgulirement!

Chapitre 5 : Layout, assets, …

Amlioration des tests

Souvenez-vous de ce code vu en cours:


require 'spec_helper'

describe "Static pages" do

  subject { page }

  describe "Home page" do
    before { visit root_path }

    it { should have_selector('h1',    text: 'Sample App') }
    it { should have_selector('title', text: full_title('')) }
    it { should_not have_selector 'title', text: '| Home' }
  end

  describe "Help page" do
    before { visit help_path }

    it { should have_selector('h1',    text: 'Help') }
    it { should have_selector('title', text: full_title('Help')) }
  end

  describe "About page" do
    before { visit about_path }

    it { should have_selector('h1',    text: 'About') }
    it { should have_selector('title', text: full_title('About Us')) }
  end

  describe "Contact page" do
    before { visit contact_path }

    it { should have_selector('h1',    text: 'Contact') }
    it { should have_selector('title', text: full_title('Contact')) }
  end
end

Le code prcdent reprsente dj une amlioration en termes de compacit, mais on peut encore l’amliorer en utilisant des exemples partags (shared example).

Compltez le code suivant (bouchez les trous) pour reproduire le meme rsultat que le test prcdent avec des exemples partags. Vrifiez ensuite que les tests sont toujours au vert!

require 'spec_helper'

describe "Static pages" do

  subject { page }

  shared_examples_for "all static pages" do
    it { should have_selector('h1',    text: heading) }
    it { should have_selector('title', text: full_title(page_title)) }
  end

  describe "Home page" do
    before { visit root_path }
    let(:heading)    { 'Sample App' }
    let(:page_title) { '' }

    it_should_behave_like "all static pages"
    it { should_not have_selector 'title', text: '| Home' }
  end

  describe "Help page" do
    .
    .
    .
  end

  describe "About page" do
    .
    .
    .
  end

  describe "Contact page" do
    .
    .
    .
  end
end

Chapitre 6

  • Crez le module User et refaites les validations prsentes en cours (y compris et surtout les test!)
  • Terminer le Chapitre 6 et ajoutez un mot de passe en suivant le tutorial dans le livre de M. Hartl. Notez en passant que la lecture du livre apprend beaucoup de choses, pensez le lire rgulirement…