2013-06-25 50 views
1

我目前正在編寫幫助規範。部分規範涉及對參數散列進行存根。我的規格如下:RSpec:存根輔助參數不起作用

example do 
    helper.stub(:params) { { user_type: :aupair, first_name: "John", second_name: "Doe", country: "Ireland" } } 
    pp helper.params 
    expect(no_search_params?).to be_false 
end 

當我在此處使用helper.params散列時,我會收到預期內容。但是,當我使用我正在指定的方法打印它時,我得到一個空白散列。目前該方法僅僅是一個存根:

def no_search_params? 
    pp params 
    true 
end 

爲什麼我的規範中存在的殘留參數沒有帶入輔助方法?

回答

3

您需要正確地調用助手使用規格:中

expect(helper.no_search_params?).to be_false 

代替

expect(no_search_params?).to be_false 
+0

這解決了我的問題。調用helper.no_search_params有什麼區別?和no_search_params?他們都調用相同的方法,但具有不同的params散列值。 –

+1

關於rspec如何創建它的幫助上下文有些不可思議,有些人比我需要解釋更多的知識。基本版本是helper.no_search_params?調用輔助對象的方法,其中no_search_params?在你的rspec上下文中調用該方法。 – gmacdougall

+0

驚訝這一個沒有upvoted更多。謝謝! @gmacdougall –