RSpecのカスタムマッチャーを利用して、複数の要素のアサーションを一つにまとめることがあります。 何に対してマッチさせたいのかをより説明的に書くことが出来、複雑なアサーションを使い回すことができて便利です。 RSpec::Matchers.define :create_user_list do |*usernames| match do |actual| actual.all? { |u| u.is_a?(User) } && actual.all?(&:persisted) actual.map(&:name).sort == usernames.sort end end まあ、これぐらいの内容だったらそんなに問題になりません。 しかし、もうちょっとやる事が複雑になると、このマッチャーのどこでどう失敗したのかを細かく知りたくなります。 とは言え、自分でfailure_messageを定