Можем ли мы определить, когда параметризованный тест завершил все тесты, сгенерированные динамически - PullRequest
0 голосов
/ 28 февраля 2020

Рассмотрим сценарий. Я выполняю тестирование API с проверками на полях полезной нагрузки объекта.

Я готовлю предварительные данные в базе данных, которая является допустимым DataClass Объектом, например. Отправьте этот объект в ArgumentsProvider, чтобы сгенерировать недопустимые значения поля по полю путем настройки одного поля предоставленного действительного объекта.

Обычно для других тестов, которые не Parameterized, я могу разобрать данные, созданные для теста в afterEachCallBack, однако, в случае использования ArgumentsProvider я не могу разорвать их до того, как все тесты для этой конкретной тестовой функции завершатся sh, в противном случае после первого теста, если я порву данные сбрасываются (удаляются из БД), тогда они недоступны для следующего теста.

В некоторых случаях я пытался использовать Function<DataClass, APIQuery> function, но это побуждает меня создавать действительные данные в БД для каждой итерации теста, сгенерированного из ArgumentsProvider

Можно ли определить, используя TestWatcher, TestExecutionListener или Extensions или каким-либо другим способом, когда функция, которая имела динамически генерируемые функции, завершила работу и перешла к следующей функции. Таким образом, я могу разорвать данные после завершения всех Parameterized испытаний.

1 Ответ

0 голосов
/ 28 февраля 2020

Одна из ваших возможностей - поместить параметризованный метод тестирования в собственный внутренний класс ˋ@Nestedˋ и расширить его расширением, которое реализует «Afterfter AllCallback».

...