出于某种原因,我在运行测试时遇到以下异常,我无法弄清楚原因。我看到的所有示例都表明您不需要向File.stub.open提供任何参数。任何帮助表示赞赏。
Failure/Error: File.stub(:open).and_return (File.new)
ArgumentError: wrong number of arguments (0 for 1..3)
来自rspec测试:
File.stub(:open).and_return (File.new)
从正在测试的代码:
File.open(@downloaded_content_path, "wb"){|f| f.write(response.parsed_response)}
答案 0 :(得分:2)
File.new
期望参数(来自documentation):
- new(filename,mode =" r" [,opt])→文件点击切换来源
- new(filename [,mode [,perm]] [,opt])→file
根据给定的模式打开由filename命名的文件 返回一个新的File对象。
有关模式的说明,请参阅IO.new,然后选择
如果正在创建文件,则可以以烫发方式给出权限位。 这些模式和权限位取决于平台;在Unix上 有关详细信息,请参阅open(2)和chmod(2)手册页。
不要创建一个真实的文件,你可以创建一个期望double
的{{1}},或者你可以查看一个gem伪造你的文件系统,如FakeFS