2012年6月17日日曜日

Ruby on Rails3ではじめるRspec

今回のプロジェクトではRspecでテストコードを書こうと思って調べてみました。

環境はruby-1.9.3-p0, rails3.2.2, postgresです。

難易度★★☆☆☆

ここでは、railsのプロジェクトを作成する時に、rspecを利用することを前提にプロジェクトの作成をしていることを想定しています。
それ以外の場合は、デフォルトで用意されるUnit::Test周りでエラーが発生するみたいなので、テスト周りの設定を変更してから次の作業を行ってください。

Gemfileに記述

まずGemfileを開きます。


vi Gemfile

ファイルに以下を記述します


group :test, :development do
  gem "rspec-rails", "~> 2.4"
end

Gemfileを保存したらbundle installでgemを最新にします。

gemを最新にしたら以下のコマンドを入力します。


rails generate rspec:install

.rspec, spec_helper.rbが作成されます。
以上で準備完了です。

Modelのテストを記述

さて、ではModelのテストを記述しましょう。UserというModelがあるとします。
spec/models/user_spec.rbのファイルを作成します。内容は以下のように記述します。


# coding : utf-8
require 'spec_helper'

# emailバリーデーションテスト
describe User, "validate_email? methods" do

  it "should be validate_type VALIDATE_TYPE_SIGN_IN" do
    user = User.new
    user.validate_type = User::VALIDATE_TYPE_SIGN_IN
    user.validate_email?.should be_true
  end

end

RSpecは「プログラムの振舞 (behaviour)」を記述するためのドメイン特化言語 (DomainSpecific Language:DSL) を提供するフレームワーク」です。
まったくさわったことのない人にはなんのことかさっぱりだと思います。そういう人はここを一読する必要があります。

内容を記述したら、テストを実行します。


rspec spec/models/user_spec.rb

↓

Finished in 0.27 seconds
1 examples, 0 failures

0 failuresなので成功です。失敗した場合は、エラー内容が詳細に表示されます。
あとはひたすらテストコードを記述していくだけです。他にもテストを便利にする色々なツールがあるようですが、とりあえずここまでです。

それにしても、最初はrailsの覚えることの多さを批判していましたが、結局は色々なツールを併用するようになってしまいました。

もう少し学習コストが低くなってほしいものですね。

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

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

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...