しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

RSpecを試してみた

RSpecのインストール、簡単な動作確認を行いました。

インストール

(公式Githubを参考にしました。

まずはGemfileに下記を追加。
Gemfileのgroupを初めて知りました。

group :development, :test do
  gem 'rspec-rails', '~> 3.0'
end

bundle install でgemを入れた後は下コマンドでspecディレクトリを作成。

$ rails generate rspec:install


これでrspecを使う準備は完了です。
下記コマンドで実際に動かす事ができます。

$ bundle exec rspec

使い方

テストの書き方

require 'spec_helper'

describe 'about nil' do
  it 'is nil' do
    s = nil
    expect(s).to eq(nil)
  end

  it 'nil? method test' do
    s = nil
    expect(s.nil?).to eq(true)
  end
end

ストファイルは上記のように記述します。
describeは大項目を表します。
今回は引数に文字列を入れましたが、StringやArray等といったクラスを引数に渡す事が多いようです。
itはテストの挙動を記述するメソッドで、代わりにexampleを使う事もできます。

ストファイルのルール

ストファイルはspecフォルダ作成します。
命名規則ですが_spec.rbを末尾に付けた名前で作成すれば「bundle exec rspec」コマンドで実行してくれます。
フォルダに入れたファイルも見てくれるので見やすくフォルダ分けするのが一般的みたいです。

Modelへのテストの書き方

Modelに対するテストを作るには下記のようなコマンドを使います。
今回はUserモデルに対するテストを作っています。

$ rails g rspec:model user


テストは下記のように記述します。

require 'rails_helper'

RSpec.describe User, :type => :model do
  it 'create test' do
    expect(User.first).to eq(nil)
    User.create!
    expect(User.first).not_to eq(nil)
    User.first.delete
  end
end

まとめ

今回はRSpecのインストールと簡単な使い方について書いてみました。
RSpecはかなり分かりやすくできているので書き方はすぐに覚えられそうです。 次はmodel以外のテストも書いていきたいと思います。