2016-07-28 63 views
5

我在控制器中創建了一些公共方法,它可以完成一些工作。Rails - Rspec - stub params

def current_service 
    service_name = params[:controller].gsub('api/v1/', '').gsub(%r{/.+}, '') 
end 

我想測試這個方法使用RSpec,但我不知道如何存根params。我應該怎麼做?

+1

這是一個聲明,而不是一個問題。 – mudasobwa

+1

你是對的,我添加了這個問題。 – mike927

回答

7

如果這是一個控制器規範,你應該能夠做這樣的事情:

allow(controller).to receive(:params).and_return({controller: 'a value'}) 

或者,將params[:controller]聲明一個單獨的方法和存根在你的天賦。

+0

很好的答案。我的問題是我使用'describe_class'而不是'controller'並導致錯誤。謝謝。 – mike927

+0

強大的參數測試怎麼樣? – Pachonk