13
にループ私はその後句でループを使用してテストを持っている:スポックユニットテストは、その後句
result.each {
it.name.contains("foo")
it.entity.subEntity == "bar"
}
for (String obj : result2) {
obj.name.contains("foo")
obj.entity.subEntity == "bar"
}
は、新たに私はループが実際にテストされていないことを認識しました。私がfooかbarか何かを持っているかどうかにかかわらず、テストは常に緑色です: 私は、ループが異なってテストされなければならないことがわかりました。 「every」は?しかし、「every」を「every」に変更するだけで例外がスローされます。
result.every {
it.name.contains("foo")
it.entity.subEntity == "bar"
}
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Spec expression: 1: expecting '}', found '==' @ line 1, column 61.
s("foo") it.entity.rootEntity == "bar" }
テストでループを正しく使用するにはどうすればよいですか?私はスポック0.7-グルーヴィー-2.0
警告!最初のアプローチはより読みやすいエラーメッセージを生成しますが、 'result'が空のコレクションの場合は' false'(そして操作失敗)と評価されます! – Hubbitus
追加警告: 'every'に渡すクロージャが複数の行である場合、2番目のメソッドが[現在解決されていないバグ](https://github.com/spockframework/spock/issues/253)に実行される可能性があります。 – jonnybot