Ruby Soundcloud Gem:无法测试上传的文件

时间:2013-03-10 00:13:10

标签: ruby-on-rails ruby testing capybara soundcloud

在测试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,所以这就是我过去一小时左右一直试图使用的,没有运气。

我愿意以任何方式成功测试上传。

1 个答案:

答案 0 :(得分:-1)

问题在于'webmock'宝石。即使使用VCR所需的版本(< 1.10.0),它也会抛出:

NoMethodError: undefined method `map' for <#String: ... >

更换'fakeweb'gem会更正错误。