вызывая метод теста каждый раз перед другими методами - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть метод тестирования, как показано ниже, два других метода тестирования зависят от этого метода, и этот метод должен запускаться перед этими двумя каждый раз, а не только один раз для обоих.

 @Test(dataProvider = "requestParameterProvider", groups = "jsonRequest")
 public void saveNewActivity_correctValues(Service service, 
 Map<String, Object> requestMap){}

 @Test(dependsOnMethods = "saveNewActivity_trackRequest_correctValues", dataProvider = "responseParameterProvider")
public void commitActivity_correctValues(Service service){}

@Test(dependsOnMethods = "saveNewActivity_trackRequest_correctValues", dataProvider = "exceptionParameterProvider")
public void failActivity_correctValues(Service service, FailureReason failureReason){}

что происходит выше case - метод saveNewActivity_correctValues, запускаемый сначала один раз, а затем два других метода. но я хочу, чтобы первый метод вызывался два раза перед каждым зависимым методом и один раз как отдельный тест. я не могу поставить первый метод как @BeforeMethod, потому что это уже тест и у него есть собственный поставщик.

1 Ответ

2 голосов
/ 17 февраля 2020

Используйте аннотацию @Before для метода, который вы хотите запустить перед всеми тестами.

Если вы не хотите, чтобы он выполнялся до всех методов, а только для некоторых, либо выполните рефакторинг ваших тестов в 2 классы и используйте @Before в одном, а не в другом и перемещайте ваши методы соответствующим образом.

Другой вариант - просто вызывать методы из каждого теста, который вы хотите, чтобы они выполнялись раньше.

Я предполагаю, что вы используете JUnit - так что смотрите здесь:

http://junit.sourceforge.net/javadoc/org/junit/Before.html

Если нет, обновите ваше сообщение тем, что вы используете.

...