Ruby on Rails開発実践基礎
Ruby on Railsを用いてプロダクトを作る実践で用いるツールや機能の解説
主にコーディング規則の設定とテストツールの使い方に関して解説。
1. 静的コード解析ツール
コーディング規則を設定することができるツール。
Ruby開発のコーディング規則設定の参考
参考ページ | URL |
---|---|
Ruby-Style-Guide / JP | https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md |
1.1 RuboCop
RuboCopのインストール
gemfile
group :development do
gem 'rubocop', require: false
gem "rubocop-performance", require: false
gem "rubocop-rails", require: false
gem "rubocop-rspec", require: false
end
設定ファイルの作成
railsプロジェクトのルートディレクトリに.rubocop.yml
を作成。
下記コマンドをターミナルで実行
上記コマンドの意味 * rubocop_todo.ymlの作成 * .rubocop.ymlがない場合に.rubocop.ymlの作成 * .rubocop.ymlに『inherit_from: .rubocop_todo.yml』を追加 * 現時点でのCopによる指摘箇所を.rubocop_todo.ymlに追加
2. テストツール
テストコードを書き、テストを実行するためのツール。
2.1. Rspec
Rspecのインストール
gemfileにgem 'rspec-rails'
を記述後、bundle install。
テストファイル作成の準備と実施方法
rspec-railsをbundle install後にrails g rspec:install
を行う。
Railsにおいてテストコードはspec
と呼ばれspec/
内はrailsのディレクトリ構成と同じようにテストコードを構築します。
例
Rspecでのテストコードを用いた開発の進め方
テストを用いた開発は以下のサイクルを繰り返して行います。
- 期待するプログラムの振る舞いをスペックに記述する
- プログラムを実装する
spec/
内のファイルにテストコードを書いて、それが正しく実行されるかどうかを確認しながら開発を進める。
Rspecでのテストコードの実行方法
全てのテストを実行
テストコードを指定して実行(specからのファイルのパスを指定)
Rspecでのテストコードの記述作法
メソッドの種類と目的
メソッド | 目的 | 例 |
---|---|---|
describe | テスト対象を文章で記述 | it "テストの対象"do ... end |
context | 特定の条件の内容を文章で記述 | it "特定の条件の内容"do ... end |
it | テストのメソッドの振る舞いを文章で記述 | it "振る舞いを記述"do ... end |
expect | テスト対象を検証するために記述 | expect(user.full_name).to eq "Tom Cat" |
expectメソッドの補足
例:Userに対するmodel(Userモデル)のテストコードを記述する例