我正在使用fix_file_upload在我的rspec中测试一些文件上传
如果我只是将其放入规范中,则会发现未找到方法的错误。
为了使其正常工作,我在规范中加入了ActionDispatch::TestProcess,但是自从我这样做以来,我发现该保护程序在进行更改时无法正确地重新加载规范文件,它会继续对旧版本的文件运行测试。
我可以通过停止并重新启动 guard 来解决此问题,但这有点违背了目的。
如何防止这种情况发生?我应该如何引用fixture_file_upload或将include放在哪里?
最佳答案
我不知道问题的确切来源,但是我自己遇到了一些由ActionDispatch::TestProcess
引起的奇怪问题。但是,您可以使用a workaround代替fixture_file_upload
,这意味着您可以删除有问题的include
。
如果您有这样的事情(例如在工厂中):
include ActionDispatch::TestProcess
fixture_file_upload('spec/factories/test.png', 'image/png')
您可以将其替换为:
Rack::Test::UploadedFile.new('spec/factories/test.png', 'image/png')
如果您查看
fixture_file_upload
的来源,您会发现它实际上只是调用上面的代码。
关于ruby-on-rails - 包括ActionDispatch::TestProcess阻止防护重新正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202261/