Rspec在视图测试上与装饰器上的助手问题

时间:2015-08-28 17:12:35

标签: ruby-on-rails ruby rspec view-helpers draper

我的一个rspec测试失败了,因为我无法在渲染视图的装饰器上使用辅助方法,而视图在正常运行服务器时工作正常,这里是错误

1) dashboard/index.html.haml render all translations
   Failure/Error: render
   ActionView::Template::Error:
   undefined method `dashboard?' for #<#<Class:0x0000000a9d1020>:0x0000000c2286f0>

以下方法是在从渲染视图调用的装饰器方法内调用的简单布尔检查:

items << h.link_to(...) if h.dashboard?

辅助方法:

def dashboard?
  controller_name == "dashboard"
end

我可以将辅助模块导入装饰器,但是对于controller_name的错误更改是未定义的,所以我想我的问题分为两部分:

一,如何通过Rspec从渲染视图调用装饰器时,如何使助手方法工作?第二,如何设置controller_name在Rspec测试中工作。

1 个答案:

答案 0 :(得分:0)

您的测试正在寻找一种名为dashboard?的方法,该方法似乎未在您的代码中定义。

您可以更新测试以查找方法moderators_dashboard?

或者

def moderators_dashboard?更改为def dashboard?