2014-11-24 109 views
0

在我們的Rails(3.2)的一個模塊,還有條件include如何讓R語句的語句總是返回true?

include UsersHelper if find_config_const('allow_sales_manage_customer_login') == 'true' 

這裏find_config_const是表格檢索找到allow_sales_manage_customer_login值的方法。使用rspec(版本2.14)進行測試時,模塊UserHelper需要爲include,因此find_config_const('allow_sales_manage_customer_login') == 'true'應始終返回true。 FactoryGirl不在此處工作,因爲由FactoryGirl創建的條目在includefind_config_const('allow_sales_manage_customer_login') == 'true'之後加載爲false。我們可以讓find_config_const('allow_sales_manage_customer_login') == 'true'始終爲rspec返回true(版本2.14)嗎?

回答

1

答案是使用#stub或#should_receive存根方法。

你能告訴我find_config_const方法是在哪裏定義的嗎?

假設它是在SomeHelper中定義的。你可以這樣做:

SomeHelper.any_instance.stub(:find_config_const).with('allow_sales_manage_customer_login').and_return(true) 
+0

@@ spiria,find_config_const在Authen :: AuthenUtility中定義。我們在(:each)之前放置以下內容:Authen :: AuthenUtility.any_instance.stub(:find_config_const).with('allow_sales_manage_customer_login')。and_return(true)。有NoMethod錯誤說未定義的Authen :: AuthenUtility:Module的any_instance。我們錯過了什麼? – user938363 2014-11-24 19:49:20

+0

你可以試試嗎? (:'find_config_const').with('allow_sales_ma nage_customer_login')。and_return(true) – spiria 2014-11-25 13:46:09