在测试soundcloud gem方面没有多少看法。大多数事情都很精彩 - 但我发现通过我的规范将文件上传到SoundCloud有点棘手。
问题在于:
规格:
file = "#{Rails.root}/spec/factories/files/sample.mp3"
title = "From the test suite"
track = @client.post('/tracks', track: {title: title, asset_data: File.new(file)})
我是否使用
File.new
或
File.expand_path
错误是一样的: NoMethodError: #String的未定义方法`map':0x007fa1ce8425c0
控制器中的成功代码是:
file = params["soundcloud_file"]
title = params["title"]
track = client.post('/tracks', track: {
title: title
asset_data: File.new(file.tempfile, 'rb')
})
现在我明白params [“soundcloud_file”]是一个ActionDispatch :: Http :: UploadedFile,所以这就是我过去一小时左右一直试图使用的,没有运气。
我愿意以任何方式成功测试上传。
答案 0 :(得分:-1)
问题在于'webmock'宝石。即使使用VCR所需的版本(< 1.10.0),它也会抛出:
NoMethodError: undefined method `map' for <#String: ... >
更换'fakeweb'gem会更正错误。