2017-02-04 53 views
2

我有這樣一個測試:如何將變量從let傳遞給共享示例?

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

我需要的用戶記錄,以檢查是否public_activity正確創建的,但上面的例子是行不通的,因爲從讓變量從示例上下文才能訪問。

我做了以下解決方法:

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 

它的工作原理,但我不喜歡這種方法非常多。有沒有更好的方法來完成這個?

回答

1

嘗試使用include_examples而不是it_behaves_like。然後測試用例將使用當前上下文。