我正在使用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'
所以我想我的问题是如何正确地存根方法,以便可以在局部内部访问它们。
应该怎么做?
答案 0 :(得分:9)
控制器存根无法正常工作,因为您未测试控制器,您正在测试视图。只需使用视图存根:
view.stub(:current_user).and_return(etc)
这应该在部分和视图中都有效。