Grails のこのフィールドには、次の制約があります。
businessNumber(matches: '([0-9A-Z]*9)RA([0-9A-Z]*4)', maxSize: 15)
grails が html ビューに maxlength 属性を埋め込むように maxSize 制約を設定しています。次のような制約の単体テストを作成します。
void testBusinessNumberExceedMaxSize(){
mockChildrenSpecialAllowancesForm.setBusinessNumber("F%G&Hy934F4G6H%55")
assertFalse (mockChildrenSpecialAllowancesForm.validate())
assertEquals ("maxSize",mockChildrenSpecialAllowancesForm.errors.businessNumber)
assertEquals (2, mockChildrenSpecialAllowancesForm.errors.getErrorCount())
}
次に、次のエラーが生成されます。
testBusinessNumberExceedMaxSize(com.ass.socialservicescm.ChildrenSpecialAllowancesTests)
| org.junit.ComparisonFailure: expected:<ma[xSize]> but was:<ma[tches]>
at org.junit.Assert.assertEquals(Assert.java:125)
at org.junit.Assert.assertEquals(Assert.java:147)
at com.ass.socialservicescm.ChildrenSpecialAllowancesTests.testBusinessNumberExceedMaxSize(ChildrenSpecialAllowancesTests.groovy:177)
2つの制約に違反していると思います(エラーカウントが2であるため).1つはmaxSizeで、もう1つは一致です。しかし、maxSize 制約に対して assertEquals を実行するにはどうすればよいですか?
注:私はgrails 2.0.0を使用しています