次のパターンを持つ Groovy Spock メソッドがあります。
def "My test"() {
def a = createA();
assert a.fieldLevel1.isValid()
def b = a.fieldLevel1
assert b.fieldLevel2.isValid()
def c = b.fieldLevel2
assert c.fieldLevel3.isValid()
...
}
ご覧のとおり、アサーションと変数定義が混在しているため、ブロックでそれを分割するのは困難です。そのような種類のテストを書くための「スポック」アプローチは何でしょうか?
アップデート:
テストc.fieldLevel3.isValid()
は実際c.fieldLevel3 instanceof A
には次のような構造になっているため、フィールドが無効な場合は続行できません。