0

对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: undefined method `map' for #String: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,所以这就是我过去一个小时左右一直在尝试使用的东西,但没有运气。

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

4

1 回答 1

-1

问题出在“webmock”gem 上。即使使用 VCR (<1.10.0) 所需的版本,它也会抛出:

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

用 'fakeweb' gem 替换可以纠正错误。

于 2013-03-12T13:46:47.660 回答