2016-06-14 5 views
0

Shoulda/RSpecのを使用して複数の属性についてvalidate_presence_ofのためにテストする場合、私は、コードのこれらの長いと繰り返しブロックを取得するには、これを好き:RSpecの/ Shoulda validate_presence_of複数の属性の構文

it { should validate_presence_of(:text) } 
it { should validate_presence_of(:user) } 
it { should validate_presence_of(:commentable) } 
[...] 

は、これを乾燥させるために方法はありますか?このようなもの:

it { should validate_presence_of(:text, :user, :commentable,...) } 

答えて

1

私が知る限り、これについてはShouldaには何も組み込まれていません。多くの場合、オプションをshouldaマクロにチェーンしたいと思うでしょう。 .with_message(...)であるため、これらのケースでは構文の提案はできません。

代わりのようなもの行うことができます:

[:text, :user, :commentable].each do |field| it { should validate_presence_of(field) } end

をしかし、私は読みやすいようにするために、あなたのテストスイートに重複の少しを持つと維持についてあまり心配しないでしょう。