tkymtk's blog

Ruby on Rails及びその周辺について調べたこと。Do whatever you want to do at your own pace.

RSpec: エラーメッセージをカスタムして日本語で出力する。

方法

expect()文の後ろをカンマで区切る。そして出力したいメッセージを、続けてダブルクオートの中に書く。

コード:

describe Array do
  context "when created with new" do
    it "is empty" do
      array = Array.new
      array << 1 # エラーメッセージを表示するために、わざと代入してみる。
      expect(array).to be_empty, "配列は空であるべきですが、 #{array.inspect}が含まれています。"
    end
  end
end

エラーメッセージ:

"配列は空であるべきですが、[1]が含まれています。" 

procでもok

expect(array).to be_empty, lambda { "expected empty array, got #{array.inspect}" }

リンク

参照

感想

まぁそもそも、specを書けるなら、べつに、って感じかもしれませんが。
私は、エラーがたくさんでてわかりにくいときに、間違っている可能性がある場所を記述するのに使ってみています。他にも良い使い方があれば教えて下さい。

expect(array).to be_empty, "examples_controller.rbの7行目あたり!" 
間違いがあれば、ご指摘下さると幸いです。