标题已经说明了一切。
我有一个控制器操作,在其中执行一些操作,然后调用在ApplicationController
中定义的方法。
我如何测试它是否被调用?
controller.should_receive(:the_method_name)
不起作用。
ApplicationController.should_receive(:the_method_name)
也不起作用。
正确的语法是什么?
谢谢。
标题已经说明了一切。
我有一个控制器操作,在其中执行一些操作,然后调用在ApplicationController
中定义的方法。
我如何测试它是否被调用?
controller.should_receive(:the_method_name)
不起作用。
ApplicationController.should_receive(:the_method_name)
也不起作用。
正确的语法是什么?
谢谢。
我认为你可以使用匿名控制器来测试你的ApplicationController,查看文档。
使用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
。
controller
然后指的是 AnonymousController 的实例,而不是 ApplicationController。 - ybakos