Передача вывода одного метода тестирования в другой метод testng - PullRequest
7 голосов
/ 25 июня 2010

Я должен написать следующие тестовые примеры в testng:

  1. saveProductTest, который возвращает идентификатор продукта, если сведения о продукте успешно сохранены в БД.

  2. modifyProductTest, в качестве параметра следует использовать ранее сохраненный productId.

Я беру сведения о продукте (PrdouctName, ReleaseDate) для saveProductTest и модифицирую методProduProduTest из файла XML с использованием поставщиков данных testNg. Поскольку productId генерируется в методе сохранения, я должен передать его методу модификации.

Каков наилучший способ передачи результатов одного метода тестирования другому методу в testng.

Ответы [ 3 ]

18 голосов
/ 26 июня 2010

При всем уважении к simendsjo, тот факт, что все тесты должны быть независимы друг от друга, является догматическим подходом, который имеет много исключений.

Возвращаясь к первоначальному вопросу: 1) использовать зависимые методы и2) сохранить промежуточный результат в поле (TestNG не воссоздает ваши экземпляры с нуля, поэтому поле будет сохранять свое значение).

Например,

private int mResult;

@Test
public void f1() {
  mResult = ...
}

@Test(dependsOnMethods = "f1")
public void f2() {
  // use mResult
}
7 голосов
/ 16 января 2015

С объектом ITestContext. Это объект, доступный глобально в контексте Suite, и его можно задать с помощью параметра в каждом @ Test.

Например:

@Test 
public void test1(ITestContext context, Method method) throws Exception {
    // ...
    context.setAttribute(Constantes.LISTA_PEDIDOS, listPaisPedidos);
    // ...
}

@Test
public void test2(ITestContext context, Method method) throws Exception {
    List<PaisPedido> listPaisPedido = (List<PaisPedido>)
    context.getAttribute(Constantes.LISTA_PEDIDOS);
    // ...
}
3 голосов
/ 25 июня 2010

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

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