privateメソッドのテスト


麻雀スクリプトを書く際にrspec書きながらやろうと思ったんだけど
試行錯誤重ねる段階でテストがうまく書けなかった。
いつも考えて試しながら書くとテストがちゃんと書けない。
rubyで麻雀の待ちを出力 - うんたらかんたら日記


これでは進歩が無いので、privateメソッドのテストを書くところから、
まずはやってみた(というかまだ途中だけど)。

書き方

#spec/majang_spec.rb
require File.expand_path(File.dirname(__FILE__) + '/../majang.rb')

describe Majang do
  # private methods
  describe ":format_tenpai" do
    context '["123", "456"],["78"]' do
      it { @m.send(:format_tenapi, ["123","456"], ["78"]).should == "(123)(456)[78]" }
    end
  end
end

結果

Majang
  :format_tenpai
    ["123", "456"],["78"]
      should == "(123)(456)[78]"

参考

UKSTUDIO - RSpecでprivateメソッドをテストする
sendを使えばいいんですね。