2016年7月25日月曜日

【Rails5.0.0】 rails4.2.5からrails5.0.0にアップグレードする その2 Rspecの修正

記事概要

rails4.2.5からrails5.0.0にアップグレードした時の方法をまとめた記事です。
Gemと設定ファイルの修正は、この記事を参考にしてください。
この記事は、Rspecの修正方法について記載しています。

環境

  • centos6.5
  • rails4.2.5 → rails5.0.0
  • ruby2.3.0
  • rbenv
  • unicorn
  • capistrano3.2.1 → capistrano3.5.0
  • whenever

Rspecの起動

まずはRspecを動かします。

terminal

bundle exec rspec spec

179 examples, 62 failures, 4 pending

エラーだらけでまともに動きません。修正が必要です。

rails-controller-testingの導入

Rspecを実行すると、コンソールに以下が表示されます。

terminal

NoMethodError:
        assigns has been extracted to a gem. To continue using it,
                add `gem 'rails-controller-testing'` to your Gemfile.

`assigns` and `assert_template` have been remove and extracted to a gem in Rails 5. #1393

Rails 5では、assignsとassert_templateが削除されています。
Gemfileでライブラリを追加する必要があります。

{project_folder}/Gemfile

group :test do
  gem "rails-controller-testing"
end

installします。

terminal

cd {project_folder}/

bundle install

Installing rails-controller-testing 0.1.1

さらに、spec/rails_helper.rbに設定を追加します。

{project_folder}/spec/rails_helper.rb

RSpec.configure do |config|
  [:controller, :view, :request].each do |type|
    config.include ::Rails::Controller::Testing::TestProcess, :type => type
    config.include ::Rails::Controller::Testing::TemplateAssertions, :type => type
    config.include ::Rails::Controller::Testing::Integration, :type => type
  end
end

修正が完了したら、Rspecを実行します。

terminal

bundle exec rspec spec

179 examples, 0 failures, 4 pending
OK

動くようになりました。

まとめ

Rspecは、Railsのアップデートをするたびに動かなくなる印象が強いです。
なので、公式通りに、Minitestを使った方が保守性は高くなると思います。

次回は、capistranoとその他の修正方法について記述します。

以上です。

PICK UP オススメ書籍

運営サイト(railsで作成しています)


関連記事

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...