2012-04-10 10 views
3

は、私はいくつかのドメインクラスのテストのためにRORの例を見ました:Spockでこれを行うことはできますか?

context "Validations" do 
    [:city, :zip, :street].each do |attr| 
     it "must have a #{attr}" do 
     a = Address.new 
     a.should_not be_valid 
     a.errors.on(attr).should_not be_nil 
     end 
    end 
end 

それは異なった値と、その場でテストを作成し、異なる名前...それは一種興味深いですが、私はスポックでこれを行うことができます...またはjUnit?

おかげでスポックを使用して多くの

答えて

6

:複数のデータ変数がある場合は

class Validations extends Specification { 
    def "must have a #attr"() { 
     def a = new Address() 

     expect: 
     !a.valid 
     a.errors.on(attr) != null 

     where: 
     attr << ["city", "zip", "street"] 
    } 
} 

は、テーブルの構文はより便利である:

 ... 
     where: 
     attr1 | attr2 
     "city" | ... 
     "zip" | ... 
     "street" | ... 
+0

どうもありがとう!非常に簡潔で便利な答え! ;-)よろしく – mpccolorado

関連する問題