読者です 読者をやめる 読者になる 読者になる

カスタムマッチャーを作ってみるテスト

おいしいカスタム抹茶マッチャーの作り方。

@arr.should include_ex([1,2])

二次元配列の要素を探す時に、上の例では @arr が [ [ 2,1],[ 3,4 ] ] のような時でも include が真となる Matcher が必要になった。
カスタムマッチャーは Spec::Matchers.define で定義できる。

Spec::Matchers.define :include_ex do |elem|
  match do |arr|
    arr.include?(elem.reverse) || arr.include?(elem)
  end
end

@arr が二次元配列か確認した後にでもこれでチェックする。