Rails 5 & tests : nouveautés et astuces

Nouveautés

Test des contrôleurs

En Rails 5, la méthode qu’on utilisait pour tester les contrôleurs est dépréciée en faveur de l’utilisation de « hash parameters ».

# Rails 4
post :create, { article: { actif: @article.actif, auteur: @article.auteur, contenu: @article.contenu, titre: @article.titre } }, { utilisateur_id: 1234 }
# Rails 5
post articles_url, params: { article: { actif: @article.actif, auteur: @article.auteur, contenu: @article.contenu, titre: @article.titre } }, session: { utilisateur_id: 1234 }, hearders: { "HTTP_REFERER" => "http://example.com/home" }
# ou
process articles_url, method: :post, params: { article: { actif: @article.actif, auteur: @article.auteur, contenu: @article.contenu, titre: @article.titre } }, session: { utilisateur_id: 1234 }

Utilisation de assigns

La fonction assigns qui permet de récupérer une variable @variable du contrôleur a été retirée de la gem ‘rails’ en version 5. Pour pouvoir l’utiliser, il faut inclure la gem ‘rails-controller-testing’ dans le Gemfile.

Astuces

Changer le message d’une failure

assert_not article.save, "Sauvegarde d'un article sans titre possible"

Récupérer plusieurs fixtures dans un tableau

articles(:one, :two)

Test des flash notice

assert_equal 'Article créé !', flash[:notice]

Recharger un objet après qu’il ait été mis à jour

@article.reload

Doc : guides.rubyonrails.org

Une réflexion au sujet de « Rails 5 & tests : nouveautés et astuces »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.