Mir*_*rko 29 rspec ruby-on-rails sendfile
如何测试发送文件的控制器操作?
如果我controller.should_receive(:send_file)使用"缺少模板" 进行测试失败,因为没有任何内容被渲染.
And*_*man 34
从谷歌搜索 周围,似乎render也将在某个时候叫..但没有模板,将导致错误.
解决方案似乎也是为了解决问题:
controller.stub!(:render)Run Code Online (Sandbox Code Playgroud)
ron*_*nen 25
另一种方法是:
controller.should_receive(:send_file).and_return{controller.render :nothing => true}
Run Code Online (Sandbox Code Playgroud)
对我来说,这抓住了这样一个事实,即预期的副作用send_file是安排没有其他任何东西被渲染.(尽管如此,将存根调用原始对象上的方法似乎有点不可思议.)
小智 7
你也可以这样做:
result = get ....
result.body.should eq IO.binread(path_to_file)
Run Code Online (Sandbox Code Playgroud)