スポンサーリンク

Windows10+WSL2でEveryday Rails – RSpecによるRailsテスト入門(Rails7.0版)を写経してみる(2)RSpecのセットアップ

前回、Everyday Rails – RSpecによるRailsテスト入門を購入し、日本語版(Rails7.0版)のソースコードをダウンロードしてテストが実行できることを確認し、"git checkout origin/01-untested"により、第2章の最初の状態に戻しました。

今回は、その状態から、 日本語版(Rails7.0版)のソースコードの第2章を写経していきたいと思います。

スポンサーリンク

Windows10+WSL2でEveryday Rails – RSpecによるRailsテスト入門(Rails 7.0)を写経してみる 目次

  1. (1)サンプルアプリケーションのセットアップ【2022年2月時点】
  2. (2)RSpecのセットアップ
  3. (3)モデルスペック

開発環境

Windows 10 Pro 21H1
Hyper-Vを有効化
VisualStudioCode (wsl用の拡張機能インストール済み)

WSL2 Ubuntu 20.04 LTS
rbenv
ruby 3.1
nvm
node.js LTS最新版
yarn
sqlite3
google-chrome-stable

Gemfileにrspec-railsを追加してbundle install

今回のコードには、諸事情によりgem 'rspec-rails’が書かれた状態なのですが、本来は、Railsアプリの初期状態には書かれていないので、Gemfileのgroup :development, :test doのところに、以下のように gem 'rspec-rails’ を追記します。

group :development, :test do
  # Railsで元から追加されているgemは省略

  gem 'rspec-rails'
end
Gemfile

Gemfileを編集したら、本来は、ターミナル画面で以下を入力します(今回はやりません。)。

bundle install

これにより、rspec-railsがインストールされて、rspecが利用できるようになります。

テストデータベース

config/database.yml を確認します。development, testのデータベースとして、sqlite3が設定されていました。

ターミナル画面に以下を入力して、データベースを作成します。

bin/rails db:create:all

あれれ、already exists と出ますが、気にしないで進めます。

RSpecの設定

以下のコマンドでRSpecをインストールします。

bin/rails generate rspec:install

.rspec ファイルを開き、一番下に以下を追記します。

--format documentation

ターミナル画面に以下を入力して、テストを実行します。

budle exec rspec

うまく動いたようです。

ジェネレータ

“rails g controller posts"などを実行したときに、rspec関連のファイルが自動的によい感じに作成されるように、以下の設定を行います。

config/application.rbを開き、module Projects より下のコードを、以下のように書き換えます。(日本語版は、g.factory_bot false 追加。コロン":"が入るのか入らないのかわかりづらい、、、)

module Projects
  class Application < Rails::Application
    config.load_defaults 7.0

    config.generators do |g|
      g.test_framework :rspec,
        fixtures: false,
        view_specs: false,
        helper_specs: false,
        routing_specs: false
      g.factory_bot false
    end
  end
end

(変更前)

(変更後)

第2章終了

以下を入力します。

git add .
git commit -m "finish chapter2"

Rails,Rails7

Posted by twosquirrel