2017-02-04 6 views
2

Ich habe einen Test wie folgt aus:Wie übergebe ich die Variable von let an shared example?

describe 'event creation' do 
    let(:user) { create :user } 
    ... 
    it_behaves_like 'also creates public_activity record', user 
end 

Ich brauche Benutzerdatensatz zu überprüfen, ob public_activity korrekt erstellt wurde, aber obige Beispiel funktioniert nicht, da Variablen aus let nur vom Beispiel Kontext sind.

Ich habe dieses Problem zu umgehen:

describe 'event creation' do 
    let(:user) { create :user } 
    ... 

    describe 'public activity' do 
    before { @user = user } 
    it_behaves_like 'also creates public_activity record', @user 
    end 
end 

Es funktioniert, aber ich diesen Ansatz nicht sehr gerne. Gibt es einen besseren Weg, dies zu erreichen?

Antwort

1

Verwenden Sie include_examples anstelle von it_behaves_like. Dann werden Testfälle den aktuellen Kontext verwenden.

Verwandte Themen