我正在使用 RSpec (Rails 3.2.8 上的 2.12)测试视图。我正在使用 CanCan 有条件地在页面上显示某些元素。这需要一个控制器方法“current_user”。在我的一些规范中,我已经能够删除 current_user,例如。
controller.stub(:current_user).and_return(等)
或者
视图.存根等。
这适用于我的一些规格。但我有几个地方不起作用,我不明白为什么。
它不起作用的两个规范测试了一个视图,该视图向下调用部分视图,并在部分视图中我访问“current_user”作为方法。错误是
undefined local variable or method `current_user'
所以我想我的问题是如何正确地存根方法,以便可以在部分内部访问它们。
应该怎么做呢?
控制器存根将不起作用,因为您不是在测试控制器,而是在测试视图。只需使用视图存根即可:
view.stub(:current_user).and_return(etc)
这应该适用于部分视图和视图。
See: 传递存根辅助方法的视图规范 https://www.relishapp.com/rspec/rspec-rails/v/2-7/docs/view-specs/view-spec#passing-view-spec-that-stubs-a-helper-method
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)