Ruby on rails 如何使用实例变量测试局部变量

Ruby on rails 如何使用实例变量测试局部变量,ruby-on-rails,rspec,Ruby On Rails,Rspec,所以我需要测试一个部分。部分内容是通过特定的操作呈现的,类似于facebook中的消息框。我的测试如下所示: describe 'partials/_partial.js.erb' do it 'displays stuff' do render end end def controller_method @items = items_method render_version(:partial => "partials/_partial.js.erb")

所以我需要测试一个部分。部分内容是通过特定的操作呈现的,类似于facebook中的消息框。我的测试如下所示:

describe 'partials/_partial.js.erb' do
  it 'displays stuff' do
    render
  end
end
def controller_method
    @items = items_method
    render_version(:partial => "partials/_partial.js.erb")
end
我运行它,我知道它能满足我的需求,因为我马上就能得到它

Failure/Error: if @items.count > 0

     ActionView::Template::Error:
       undefined method `count' for nil:NilClass
我不需要听说在局部使用实例变量是一种不好的做法,它已经存在,我需要使用它。那么我如何在这里设置@items

更新:

控制器操作如下所示:

describe 'partials/_partial.js.erb' do
  it 'displays stuff' do
    render
  end
end
def controller_method
    @items = items_method
    render_version(:partial => "partials/_partial.js.erb")
end

看起来你正在使用rspec。在这种情况下,您在测试期间定义的任何实例变量都将可用于您的视图(无论它是否为部分变量)

描述“用户/u消息”是什么
在…之前做
#这在您的视图中可用。
@项目=[]
结束
它“当@items为空时无错误地呈现”do
#将通过,@项可用
期望{render}.不会引发错误
结束
它“显示有多少条消息的计数”do
#可以在渲染之前对其进行修改

@您可以发布控制器操作吗?@Gaston its您确定测试调用控制器吗?我想它只是呈现了模板。我从来没有说过我想让它调用控制器,我想知道如何在这里伪造@items:)确实如此,但我需要定义实际的@items数组。我想我会通过在“it”块中定义它来处理它,刚刚发现了这种可能性:p