Исходя из фона JUnit Я не совсем понимаю смысл всего текста в тестах spockD, так как они не отображаются на выходе теста.Почему тесты Spock Speck настолько многословны?
Так, например, если у меня есть ограничение на поле Double обув с ограничениями Foo макс: 5, обнуляемым: ложные
И я пишу тесты, как это:
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
Но я не могу сказать, сформировать этот отчет, не удалось ли это нулевое ограничение или проверка максимального ограничения, а затем мне нужно проверить номер строки ошибки в тесте источник.
По крайней мере, с помощью JUnit я мог сделать
foo=60D;
assertFalse("contraints failed to block foo>max", f.validate());
foo=null;
assertFalse("contraints failed to block foo=null", f.validate());
И тогда я хотел бы получить полезную информацию обратно из в отчете о неисправности. Что представляется более кратким и дает более информативный отчет об отказе от тестирования.
Есть ли какой-то способ получить более надежную отчетность об ошибках из Spec, которая использует все эти типизации, когда и затем оговорки, чтобы они отображались в отчетах об отказах, чтобы вы знали, что на самом деле не удается? Являются ли эти «когда» и «затем» текстовые дескрипторы, служащие только внутренней исходной документацией или они где-то используются?
Спасибо, у меня создается впечатление, что я как-то переусердствовал, как я написал этот модульный тест. Каким был бы эффективный способ сделать это? – user1023110
Питер уже посоветовал по этому поводу.Разделите свой тестовый метод на два отдельных метода (два теста), давая соответствующее имя метода каждому из них. Затем вы можете пропускать описания блоков внутри теста. – topr