我正在将我的 rails 应用程序从 Rails 4.1.9 升级到 4.2.2。在 rails 4.1.9 中,rspec 是绿色的。升级后,当我运行测试时,我遇到了几个 rspec 失败。
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: 'git@github.com: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"
在 rails 升级到 4.2.2 后,我遇到了类似的故障,
Failure/Error: response_json = JSON.parse(response.body)['credit_value_rating_types']
TypeError:
no implicit conversion of String into Integer
对于从 4.1.9 到 4.2.2 的 rails 版本,我在响应正文中缺少键“['credit_value_rating_types']”。我实际上是使用 Activemodel 序列化器对响应进行序列化。
我无法找到失败背后的原因。任何见解都会有所帮助。