我正在为一个控制器编写请求规范,我想要通过AJAX调用另一个控制器的方法。 AJAX调用中的控制器操作用于对地址进行地理定位,并且与请求的其余部分无关。控制器操作总是不呈现任何内容。
我试过了:
before :each
AddressesController.any_instance.stub(:update).and_return nil
end
然而,这给了我一个错误:
Failure/Error: Unable to find matching line from backtrace
ActionView::MissingTemplate:
Missing template addresses/update, application/update
该操作不存在任何视图模板,因为它始终不呈现任何内容。
有没有办法可以完全删除其他控制器的操作,或者我是否需要将该方法的内部结构反过来?
答案 0 :(得分:0)
有关详细说明,请参阅this thread。就像你提到的那样,你应该反省方法的内部结构。
答案 1 :(得分:0)
您将无法在请求规范中存根控制器操作。但是,您可以存根AJAX请求,以便永远不会达到控制器操作。 Webmock是个不错的选择。