2015-07-03 15 views
5

Sto cercando di imparare a utilizzare gli esempi condivise di RSpec caratteristica e sto ottenendo un messaggio di avviso quando eseguo il mio test:Come evitare l'avviso "precedentemente definito" degli esempi condivisi di Rspec?

WARNING: Shared example group 'required attributes' has been previously defined at: 
    /Users/me/app/spec/support/shared_examples/required_attributes_spec.rb:1 
...and you are now defining it at: 
    /Users/me/app/spec/support/shared_examples/required_attributes_spec.rb:1 
The new definition will overwrite the original one. 
.... 

Ho letto quello che penso è la documentazione su questo problema here ma sto avendo difficoltà a capirlo/vedere i takeaway per il mio caso.

Ecco il mio esempio condiviso:

# spec/support/shared_examples/required_attributes_spec.rb 

shared_examples_for 'required attributes' do |arr| 
    arr.each do |meth| 
    it "is invalid without #{meth}" do 
     subject.send("#{meth}=", nil) 
     subject.valid? 
     expect(subject.errors[meth]).to eq(["can't be blank"]) 
    end 
    end 
end 

Sto cercando di utilizzare questo in un modello User e un modello Company. Ecco come si presenta:

# spec/models/user_spec.rb 

require 'rails_helper' 

describe User do 
    subject { build(:user) } 
    include_examples 'required attributes', [:name] 
end 

# spec/models/company_spec.rb 

require 'rails_helper' 

describe Company do 
    subject { build(:company) } 
    include_examples 'required attributes', [:logo] 
end 

Per le raccomandazioni nella documentazione RSpec ho linkato sopra, Ho provato a cambiare include_examples-it_behaves_like, ma che non ha aiutato. Ho anche commentato company_spec.rb interamente, quindi c'era solo una specifica che utilizzava l'esempio condiviso e sto ancora ricevendo l'avviso.

Qualcuno può aiutarmi a vedere cosa sta succedendo qui e cosa dovrei fare in questo caso per evitare l'avviso?

risposta

21

ho trovato la risposta in questa issue al Rspec Github:

in caso qualcuno googles e atterra qui. Se mettere il file con esempi condivisi nella cartella di supporto non ha fissato il errore seguente ... Assicurati che il tuo nome non finisce con _spec.rb.

Problemi correlati