如何使if语句始终为Rspec返回true?

时间:2014-11-24 02:27:00

标签: ruby-on-rails-3 rspec

在我们的一个rails(3.2)模块中,有条件include

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创建的条目在include之后加载,而find_config_const('allow_sales_manage_customer_login') == 'true'为false。有没有办法让find_config_const('allow_sales_manage_customer_login') == 'true'总是为rspec(ver 2.14)返回true?

1 个答案:

答案 0 :(得分:1)

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

你能告诉我find_config_const方法的定义在哪里吗?

假设它是在SomeHelper中定义的。你可以这样做:

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