Langages/Ruby/Rails/Tests/TDD

Un article de Agora2ia.


Sommaire

TDD et BDD

Cette partie couvre le TestDrivenDevelopment (encore appelé TestFirst) et le BehaviourDrivenDevelopment (ou BDD) avec Rails et les outils que nous venons de découvrir.


BDD

  • Features (specs côté client)
  • Steps


BDD in Rails (The RSpec Book, Pragmatic Programmers)


Je développe en commençant par les tests !

RSpec

  • Utiliser un générateur pour générer le test RSpec :
// Pour un model
 > script/generate rspec_model Group

// Pour un controller (tout en minuscule, au singulier)
> script/generate rspec_controller group


Migration pour l'association HABTM

  • Voir aussi :
  • Il est important de noter que le nom des deux tables utilisés pour nommer la table d'association doivent être par ordre alphabétique ! (dans l'exemple ci après, on prend "atoms" en premier, puis "groups" en second !)
  • Générer la migration > script/generate migration create_atoms_groups
  • Ecrire le code de la migration :
class CreateAtomsGroups < ActiveRecord::Migration
  def self.up
      create_table :atoms_groups, :id => false do |t|
        t.integer :atom_id
        t.integer :group_id
      end
  end

  def self.down
      drop_table :atoms_groups
  end
end
  • L'exécuter : > rake environment RAILS_ENV=test db:migrate