0

soundcloudgemのテストについてはあまり見ていません。ほとんどすべてが素晴らしかった-しかし、私のスペックを通して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:0x007fa1ce8425c0の未定義のメソッド `map'

コントローラで成功するコードは次のとおりです。

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時間ほど、運が悪かったために使用しようとしていたことです。

アップロードを正常にテストする方法は何でも構いません。

4

1 に答える 1

-1

問題は「webmock」ジェムにありました。VCRに必要なバージョン(<1.10.0)を使用しても、次のようにスローされます。

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

'fakeweb' gemに置き換えると、エラーが修正されます。

于 2013-03-12T13:46:47.660 に答える