3

标题说明了一切。

我有一个控制器动作,我在其中做一些事情,然后调用在ApplicationController.

我如何测试它是否被调用?

controller.should_receive(:the_method_name)不起作用。
ApplicationController.should_receive(:the_method_name)不起作用。

什么是正确的语法?

谢谢。

4

2 回答 2

1

我认为您可以使用匿名控制器来测试您的 ApplicationController,查看文档。

于 2013-03-21T20:16:03.350 回答
0

按照 Gerep 的建议使用 AnonymousController 并调用controller.should_receive(:the_method_name)应该这样做。

测试中的位置对于让测试成功通过很重要。给你举个例子:

describe 'my test' do
  before do
    controller.should_receive(:the_method)
    get :action
  end
  it { should render_template(:your_template) }
end

这个例子应该通过并测试:the_method.

于 2013-06-04T18:18:17.407 回答