我從Rails的4.1.9至4.2.2.In軌4.1.9 RSpec的是green.After升級,當我跑我的升級Rails應用程序測試中,我得到了幾個rspec失敗。變化軌之後,從串行響應升級到4.2.2從4.1.9
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.2.2我得到一個失敗等之後,
Failure/Error: response_json = JSON.parse(response.body)['credit_value_rating_types']
TypeError:
no implicit conversion of String into Integer
使用Rails版本4.1.9,從4.2.2,我丟失的鑰匙「[ 'credit_value_rating_types' ]「在響應body.I實際上是序列化使用Activemodel串行器響應。
我無法找到failure.Any洞察背後的原因將是有益的。
JSON.parse(response.body)是給散列數組的更多細節。 [{「ID」 => 1,「名」 =>「樣品類型」}] –
@CharlesSkariah所以它解釋完全如我所說 –
@CharlesSkariah也許你想要做'錯誤JSON.parse(response.body) [0] ['credit_value_rating_types']'如果只有一個項目 –