RSpecを使用してRoRでテスト用のカスタムマッチャーを作成しようとしています。複数の引数を持つRSpecとカスタムマッチャー
define :be_accessible do |attributes|
attributes = attributes.is_a?(Array) ? attributes : [attributes]
attributes.each do |attribute|
match do |response|
response.class.accessible_attributes.include?(attribute)
end
description { "#{attribute} should be accessible" }
failure_message_for_should { "#{attribute} should be accessible" }
failure_message_for_should_not { "#{attribute} should not be accessible" }
end
end
私は私のテストでは、次のようなものを書くことができるようにしたい:
...
should be_accessible(:name, :surname, :description)
...
が、上記で定義されたマッチャと、私はシンボルの代わりで区切られたシンボルの配列を渡す必要がありますカンマでなければ、最初のシンボルだけが検査されます。
アイデア?
あなたの最初の必要性に合わせる必要があります:http://stackoverflow.com/a/4/43289/582863とにかく、私はここであなたの意図を知りたいのですが...あなたのrspecテストファイルの行数を減らしたいのですか、またはモデル属性の複雑なテストをテストしていますか? – Saaman
あなたが提供したリンクの問題は、これが「通常の」defメソッドではないため、*を使うことができないということです。あなたの質問に答える、私はちょうど私のrspecの線を減らしたい:) –