2017-03-15 3 views
0

Je viens de remarquer un comportement bizarre de Rspec. Je me demande si c'est l'erreur de Rspec ou si mon approche du test est incorrecte.Le test du contrôleur RSpec ne génère pas d'erreur

Je possède ce test du contrôleur (je découpe des morceaux inutiles):

describe 'GET #new' do 
def get_new(group_id = nil) 
    get :new, group_id: group_id 
end 

context 'with logged in user' do 
    context 'with group_id' do 
    let(:group) { create(:group) } 

    before { get_new(group.to_param)} 

    it 'renders correct template' do 
     expect(response).to render_template(:new) 
    end 

    it 'returns success' do 
     expect(response).to be_success 
    end 
    end 
end 
end 

c'est la façon dont j'ai testé les contrôleurs depuis longtemps, compte tenu de vérifier contre modèle et le code de réponse est assez pour faire contrôleur sûr rend la page réelle. Cependant

maintenant, sous forme peaufinage sur la page, je reçois une erreur dans cette action, que je peux voir clairement dans le navigateur: browser error Mais je viens de découvrir que ces deux tests passent alors qu'en fait il y a cette erreur .

Qu'est-ce que je fais mal et comment puis-je vérifier cette erreur dans mes spécifications?

Répondre

1

Votre erreur provient de votre vue, mais par défaut, les tests du contrôleur dans RSpec ne rendront pas les affichages. Vous pouvez utiliser la méthode render_views de rspec-rails pour forcer les spécifications de votre contrôleur à afficher des vues.

+0

Oui, vous avez raison – borisano