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 pensée sur “Rails 5 & tests : nouveautés et astuces”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.