素でRSpecを使うためのspec_helper.rb

こないだのRakefileと併せて使っていたもの。

  • 必要なファイルを読み込む
  • DBとの接続を行う(必要な場合)

といったフレームワークがやってくれていることを自前でやるというだけなんですけども。

# -*- coding: utf-8 -*-

$TESTING=true

$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
$:.unshift File.expand_path(File.join(File.dirname(__FILE__)))

require 'rubygems'
require 'factory_girl'
require 'active_record'
require 'active_support/all'

ActiveRecord::Base.establish_connection(
  :adapter => "sqlite3",
  :database => "db/test.sqlite3",
)

Dir[File.join(File.dirname(__FILE__), "..", "lib", "models", "**/*.rb")].each do |f|
  require f
end

require File.join(File.dirname(__FILE__), "factories")
Dir[File.join(File.dirname(__FILE__), "factories", "**/*.rb")].each do |f|
  require f
end

RSpec.configure do |config|
end

Rspec.configureではモックのフレームワークに何を使うかなど必要なら指定する。
ほかにもいろいろできるはずなので一度調べておこうかな。

この投稿へのコメント

  1. 匿名 said on 2011年8月4日 at 11:35 PM

    rakeファイルとあわせて使うのでしたら、下記のように t.pattern に specファイルのパターンを入れておけば、各specファイルに対応するような lib/modelファイルも見つけてくれるような気がします。

    RSpec::Core::RakeTask.new(:spec) do |t|
    t.pattern = “./spec/**/*_spec.rb”
    end

  2. akahige said on 2011年8月4日 at 11:43 PM

    おーありがとうございます!
    今度試してみます。

  3. akahige said on 2011年8月23日 at 12:00 AM

    うーん、ソースをちょっとのぞいてみたところ、テスト対象のファイルを自動で見つけてくれる機能はなさそうです。
    よく考えたら必ずしも1クラス1スペックというわけでもないですしね。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL