2015-06-15 19 views
0

我正在測試一個控制器在它包含的模塊中調用某個方法。我不希望該方法實際執行,只是爲了驗證它是否被調用。我現在所擁有的是:如何在RSpec中執行stubbed方法

it 'calls create_show_and_tickets' do 
    sign_in create :admin 
    expect(subject).to receive(:create_show_and_tickets) 

    post :create, show: valid_attributes 
end 

在測試中,我沒有把合適的參數,所以當我試圖遍歷的對象不存在,拋出一個錯誤。有沒有辦法確保create_show_and_tickets不執行?

+0

該代碼看起來正確。如果它沒有按預期工作,你能告訴你如何設置'subject'嗎? –

回答

3

有沒有辦法確保create_show_and_tickets不執行?

您已經通過調用

expect(subject).to receive(:create_show_and_tickets) 

...職前剛剛做過。 allow會有同樣的效果。在任何一種情況下,底層代碼都會被您的模擬或存根替換,並且不會被調用。

您可以在create_show_and_tickets中加入調試語句來確認。