RSpec - Get Started

RSpec: Home に記載されている Get Started をやってみました。

まずは、スペックファイルを書きます。スペックっていうのは仕様ってことでしょうね。

以下の内容で bowling_spec.rb という名前のファイルを作成します。このスペックファイルには、作成するクラスの仕様 (スペック) を記述します。

require 'bowling'

describe Bowling do
  before(:each) do
    @bowling = Bowling.new
  end

  it "should score 0 for gutter game" do
    20.times { @bowling.hit(0) }
    @bowling.score.should == 0
  end
end

このスペックファイルをざっと眺めると、ここではボーリングクラスの仕様が記述されているようです。外側に describe ブロックがあり、その中に beforeit というブロックをとる関数があります。

最初なんでざっと理解してみると、ここには 「ボーリング (Bowling) は、ボールが全部ガーターに入るとスコアが 0 になります」 ってことが書いてありそうです。

たぶん describe のブロックで仕様をおおまかにくくって分類するんでしょう。そして it のところに、詳細な仕様を書くということでしょうか。before(:each) のブロックの中は、それぞれの it ブロックの前に何度も実行されるので、ここで初期化をやっておくとよさそうです。

it ブロックの中を詳しく見てみると、@bowling.score.should == 0 と書いてあります。ここにある should == 0 ってのが仕様というか 「そのときボーリングのスコアは 0 に!」 ってのを英語っぽく書いてあるんですね。なるほど。

この it ブロックの中は、ピンにボールが当たらない (hit が 0) ボーリングを 20 回やっても、スコアーは 0 ですよってことですね。

ははーん、ここでこういう仕様を書いて、この仕様の通りに動作するクラスを書いていくというのが RSpec が提供する BDD なんですね。たぶん。初めたばかりなので、詳細はこれから見えてくるでしょう。


CategoryRSpec

ボンノウドットコム Wiki: RSpec - Get Started (last edited 2009-01-19 15:57:34 by JunKikuchi)

このサイトに関するお問い合わせは kikuchi@bonnou.com までお願いします