Я должен записать следующие случаи модульного теста в тестировании:
saveProductTest, который возвратил бы productId, если сведения о продукте сохраняются успешно в DB.
modifyProductTest, это должно использовать ранее сохраненный productId в качестве параметра.
Я беру вход сведений о продукте (PrdouctName, ReleaseDate) для saveProductTest и modifyProductTest метода от использования XML-файла, тестирующего поставщиков данных. Так как productId сгенерирован в методе сохранения, я должен передать его изменить методу.
Что лучший способ состоит в том, чтобы передать вывод одного метода тестирования для другого метода в тестировании.
С при всем уважении к simendsjo, тот факт, что все тесты должны быть независимыми друг от друга, является догматическим подходом, имеющим множество исключений.
Вернемся к исходному вопросу: 1) использовать зависимые методы и 2) сохранить промежуточный результат в поле (TestNG не воссоздает ваши экземпляры с нуля, поэтому это поле сохранит свое значение).
Например
private int mResult;
@Test
public void f1() {
mResult = ...
}
@Test(dependsOnMethods = "f1")
public void f2() {
// use mResult
}
Каждый юнит-тест должен быть независимым от других тестов, чтобы было легче увидеть, что не получилось. Вы можете иметь вспомогательный метод, сохраняющий продукт и возвращающий id, и вызывать его из обоих тестов.