J'ai utilisé les rails 5.0.0.1, je suis nouveau dans les tests d'automatisation et j'utilise rspec-rails-3.5.2 pour l'automatisation de l'écriture.Test du contrôleur rspec-rails avec assertions et affectations
Je souhaite tester certaines fonctionnalités de base de l'automate et les affectations de variables d'instance. A écrit un scénario de test de contrôleur qui vérifie si le modèle get_structure est rendu et les variables d'instance requises sont affectées.
describe 'GET #get_structure' do
context 'get attributes to build tree structure' do
let(:plan) { FactoryGirl.create(:plan) }
it 'expects all keys to build structure' do
get :get_structure, params: { id: 6, school_subdomain: 'chrys' }
expect(response).to render_template(:get_structure)
expect(assigns.keys.include?('collection')).to be true
expect(assigns.keys.include?('structure')).to be true
expect(assigns.keys.include?('config')).to be true
end
end
end
Une fois que je courais les cas de test i réalisé assert_template n'est plus pris en charge en raison de certaines des raisons de sécurité.
NoMethodError: assert_template has been extracted to a gem. To continue using it, add
gem 'rails-controller-testing'
to your Gemfile.
Depuis sa mentionné dans la documentation rspec-rails que l'utilisation gem-test rails-contrôleur rajoute la fonctionnalité, je l'ai fait ajouter.
In Rails 5.x, controller testing has been moved to its own gem which is rails-controller-testing. Using assigns in your controller specs without adding this gem will no longer work.
J'ai ajouté rails-controller-testing-1.0.1 gem. Également dans la documentation gem de rails-controller-testing, il est mentionné que
rspec-rails automatically integrates with this gem since version 3.5.0. Adding the gem to your Gemfile is sufficient.
Mais même après l'ajout, il renvoie toujours la même erreur.
Comment résoudre ce problème? Existe-t-il un autre moyen de faire des tests de contrôleur? Je me suis cogné la tête dessus pendant assez longtemps. Toute aide serait appréciée. Merci d'avance.
Merci @Narasima Reddy. C'était une réponse rapide. J'ai fini par utiliser les spécifications de la requête et cela fonctionne bien – Jazmin