RSpecチュートリアルやってみる

吉見和也(Kazuya Yoshimi)

2008-02-22 20:46

前々回、せっかくRSpec入れたのになんもやってないので、今回はRSpecでなんかやる

で探してみたら、こちらでRSpecのチュートリアルが紹介されていましたので、これをやっていきます。

RSpecのバージョンが古くて、そのままじゃ動かないとのことですが、だがそれがいい

何も考えずにやっちゃうとコピペになっちゃうしね。

それじゃあ行ってみましょう。

■ Mastermind? コードブレイカー?

残念ながらこれがどんなゲームなのかがわからないので、ぐーぐる先生に聞いてみました。

マスターマインド - Wikipedia

いまいちわからないけど、要は相手がどこに何色のピンを置いたかを当てればいいらしい。

■ 前準備

このチュートリアルをやるには、以下のものが必要

・Ruby

・RubyGems

・RSpec (gemで入ってればOK)

■ スタート

チュートリアルそのままじゃ動かないので、いろいろいじりながらいきます。

まずはディレクトリとかベースになるファイルとか作る。

mastermind/specs/

mastermind/src/

mastermind/mastermind.rb

mastermind.rb


require 'rubygems'

require 'spec'

■ その1

specs/all_white_code_spec.rb


require File.dirname(__FILE__) + '/../mastermind'

describe "An all white code with an all white guess" do

  before do

    all_white_code = Mastermind::Code.new(:white, :white, :white, :white)

    all_white_guess = Mastermind::Code.new(:white, :white, :white, :white)

    @score = all_white_code.mark(all_white_guess)

  end

  it "should score 4 black pegs" do

    @score.black.should == 4

  end

end

context => describe

setup => before

specify => it

should_equal 4 => should == 4

それぞれこんな感じで修正

ここでrspecを実行すると、Mastermindなんてないよって怒られる。requireしてないんだから当然だけど

src/code.rbを作成してあげる


module Mastermind

  class Code

  end

end

で、このファイルを読み込みたいので、mastermind.rbに以下の一行を追加する


require File.dirname(__FILE__) + '/src/code'

チュートリアルには require '/src/code' って書いてあるけど、それだとtextmateからspecを実行できないので絶対パスで指定するようにする。

その後はチュートリアルに従って進めていく。score.rbにblackというメソッドを定義して、4を返すようにしたところで、RSpecに怒られなくなりました。score.rb作ったらmastermind.rbで読み込むのを忘れないように。

ここで一区切りらしいので、先は次回に

押忍

※このエントリはZDNETブロガーにより投稿されたものです。朝日インタラクティブ および ZDNET編集部の見解・意向を示すものではありません。

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]