カテゴリー:
Rspec
タグ:
 Rspec マッチャ カスタムマッチャ

このエントリーをはてなブックマークに追加
更新日時:
2013年08月20日(火)
作成日時:
2013年08月20日(火)

前の記事 / 次の記事

参考

"spec/support/matchers.rb"あたりに次のように書けば。
(面倒だったら"spec/spec_helper.rb"に直書き。)

$ vi spec/supprot/matchers.rb
RSpec::Matchers.define :be_a_dqn do |expected|
  match do |actual|
    actual == "dqn"
  end

  #
  # 出力メッセージは定義しなくても動く
  #

  # 成功時出力メッセージ
  description do
    "should be a dqn"
  end

  # 失敗時出力メッセージ(肯定時)
  failure_message_for_should do
    %Q|expected "#{expected}"\n| +
    %Q|got "#{actual}"|
  end 

  # 失敗時出力メッセージ(否定時)
  failure_message_for_should_not do
    %Q|expected not "#{expected}"\n| +
    %Q|got "#{actual}"|
  end
end

次のように使えるようになる

expect(person).not_to be_a_dqn