JUnitのバックグラウンドから来て、spockDテストのすべてのテキストのポイントを本当に理解していません.テストからの出力には表示されないからです.
たとえば、フィールド Double foo に制約 foo max:5, nullable:false がある場合
そして、私は次のようなテストを書きます:
void "test constraints" {
when: "foo set to > max"
foo=6D
then: "max validation fails"
!foo.validate()
when: "foo is null
foo=null
then: "null validation fails"
!foo.validate()
}
テストはソースで十分に文書化されていますが、検証が失敗した場合、エラー出力は、テストを明確にするために行ったすべての追加の入力を利用していません。
私が得るのは
Failure: |
test constraints(com.grapevine.FooSpec)
|
Condition not satisfied:
f.validate()
| |
| false
しかし、このレポートからは、null 制約または最大制約の検証に失敗したかどうかを判断できません。次に、テスト ソースで失敗した行番号を確認する必要があります。
少なくともJUnitでできること
foo=60D;
assertFalse("contraints failed to block foo>max", f.validate());
foo=null;
assertFalse("contraints failed to block foo=null", f.validate());
そして、失敗レポートから有益な情報を得ることができました。これは、より簡潔で、より有益なテスト失敗レポートを提供するようです。
このような when 句と then 句のすべてのタイピングを利用して、Spec からより堅牢なエラー レポートを取得する方法はありますか? これらの「いつ」と「その後」のテキスト記述子は、内部ソース ドキュメントとしてのみ機能しますか、それともどこかで使用されますか?