TDDBCでお勉強したので、Rubyでテスト駆動開発をやってみる

投稿日:

手順メモ

(1) gem で RSpec, ZenTest, redgreen, autotest_screen をインストール。autotest_screenは、Version4.0未満のZenTestには同梱されていたみたいだけど、V4.0以降は別のgemをインストールする必要がある。

サイキョウライン » autotest_screenをリリースしました。

yoozoosato@localhost:~$ gem search rspec

*** LOCAL GEMS ***

rspec (1.2.9)
rspec-rails (1.2.9)
yoozoosato@localhost:~$ gem search autotest

*** LOCAL GEMS ***

autotest_screen (4.0.2)
yoozoosato@localhost:~$ gem search zentest

*** LOCAL GEMS ***

ZenTest (4.2.1)
yoozoosato@localhost:~$ gem search redgreen

*** LOCAL GEMS ***

redgreen (1.2.2)

(2) .autotest をホームディレクトリに作成。autotestでググると「サンプルをコピーすればいい」的な記述があったので、インストールしたgemの中に含まれているサンプルをホームディレクトリにコピーした。

cp /usr/lib/ruby/gems/1.8/gems/ZenTest-4.2.1/example_dot_autotest.rb ~/.autotest

(3) .autotestの中身を編集。require 'autotest/screen' を追記。ってか、元は全部コメントアウトされているから、コピーした意味ないじゃんね。。

# -*- ruby -*-

# require 'autotest/autoupdate'
# require 'autotest/once'
# require 'autotest/rcov'
# require 'autotest/restart'
# require 'autotest/timestamp'

# Autotest::AutoUpdate.sleep_time = o
# Autotest::AutoUpdate.update_cmd = o
# Autotest::RCov.command = o
# Autotest::RCov.pattern = o

require 'autotest/screen'

(4) 開発対象のディレクトリに「spec」と言う名前のディレクトリを作成し、その中に hoge_spec.rb みたいなテストを書く。
(5) 開発対象のディレクトリに移動して、 autospec コマンドを叩くと、specファイルが更新される都度テストが行われ、その結果がred/greenで表示される。
(6) こんな感じ。

・テスト失敗
20100105_1.png

・テスト成功
20100105_2.png

Mac + Growlの設定はぐぐれば沢山ヒットするけど、僕はgrowlが好きではないのでまだ試していない。導入してみてもいいような気もするけど。