レールアプリケーションをRails 4.1.9から4.2.2にアップグレードしていました。レール4.1.9ではrspecがグリーンでした。テスト、私はいくつかのrspecの失敗を得た。レールの後4.1.9から4.2.2にレールをアップグレードした後のシリアライザからの応答
Rails version = 4.2.2
Ruby version = 2.2.4
rspec = 3.0.0
Following are the gems I used for testing,
gem 'rspec-rails'
gem 'rspec_junit_formatter', require: false, git: '[email protected]:sj26/rspec_junit_formatter.git'
gem 'awesome_print'
gem 'factory_girl'
gem 'jasmine'
gem 'jasmine-jquery-rails'
gem 'quiet_assets'
gem 'sequel'
gem 'brakeman', require: false
gem 'qunit-rails'
gem 'webmock', '~> 2.3.1'
gem 'capybara'
gem 'simplecov', require: false
gem 'simplecov-rcov', require: false
gem 'cucumber-rails', require: false
gem 'rack_session_access'
gem 'poltergeist'
gem "faker"
gem 'shoulda-matchers'
gem "shoulda-callback-matchers"
私は4.1.9から4.2.2へのレールのバージョンで
Failure/Error: response_json = JSON.parse(response.body)['credit_value_rating_types']
TypeError:
no implicit conversion of String into Integer
、のような失敗を取得しています4.2.2にアップグレードし、私は「キーをしないのです[ 'credit_value_rating_types' ] "を返します。実際には、Activemodelシリアライザを使用してレスポンスをシリアル化しています。
私は失敗の背後にある理由を見つけることができませんでした。洞察力は役立ちます。
JSON.parse(response.body)はハッシュの配列を提供しています。 –
@CharlesSkariahだから、 [0] ['credit_value_rating_types'] 'アイテムが1つしかない場合 –
@CharlesSkariah多分、あなたは 'JSON.parse(response.body) 'をしたいと思っています。[{" "id" => 1、 "name" => "サンプルタイプ"}] –