rspec视图存根和部分

时间:2012-12-29 19:12:41

标签: rspec views partials stubs

我正在使用RSpec测试视图(Rails 3.2.8上的2.12)。我正在使用CanCan有条件地在页面上显示某些元素。这需要一个控制器方法'current_user'。在我的一些规范中,我已经能够存根current_user,例如。     controller.stub(:CURRENT_USER).and_return(等) 要么     view.stub.etc。

这适用于我的一些规格。但我有一对夫妇在哪里工作,我不明白为什么。

它不工作的两个规范测试一个视图,它调用一个部分,在部分内部我访问'current_user'作为一个方法。错误是

undefined local variable or method `current_user' 

所以我想我的问题是如何正确地存根方法,以便可以在局部内部访问它们。

应该怎么做?

1 个答案:

答案 0 :(得分:9)

控制器存根无法正常工作,因为您未测试控制器,您正在测试视图。只需使用视图存根:

view.stub(:current_user).and_return(etc)

这应该在部分和视图中都有效。

请参阅:passing view spec that stubs a helper method