Может кто-то подскажет, как можно использовать полученную ссылку из одного метода в другом? (да, я нуб в этом деле)
Например:
Тест1 - создал страницу Job (тут же получил ее ссылку (getCurrentUrl))
Тест2 - проверил, что страница Job находится (можно найти) на стр. поиска
Тест3 - теперь нужно удалить страницу, но я не хочу руками прописывать ссылку до страницы Job, а хочу использовать ту ссылку, которую я получил на шаге создания Job (Тест1)
Связывать тесты не очень хорошо.
Но если очень хочется, то ничего сложного в этом нет. Чтобы другой тест мог что-то получить из первого, нужно, чтобы первый это положил куда-то куда второй может дотянуться во время запуска. Проще всего статические поля, т.к. они инициируются один раз при загрузке класса, а не каждый раз при создании объекта. Либо выкинуть всё во внешнее хранилище: файлик, база и т.п.
Самый нормальный вариант - объединить все эти 3 теста в один Е2Е и сделать его независимым.
В рамках одного класса: перед тестом private static String url
Если из разных классов дергать то public static String url
Если TestNG юзаешь, то у него есть ITestContext, туда можно сетать и оттуда гетать атрибуты. В JUnit’e наверное тоже такое есть.
“Связывать тесты не очень хорошо.”
Ну, мне кровь из носу, а нужно проверить, что после создания. новгй страницы, её можно найти на поиске. В моем случае это работает так: 1 Тест - создание страницы (это отдельный тест). 2 Тест - поиск созданной страницы (этот тест скипнется, если регистрация не прошла) ну и т.д.
А так, я пока новичок (очень сильно) и пока разбираюсь
Спасибо за совет
Попробую. Спасибо
если сущность типизирована и нужна например для дебага или ещё для чего после рантайма
можно просто сохранять в темп фолдере джейсон/текст
и потом читать в любых тестах- методах
1 сьют генерит какую-то тест дату
2 сьют или другая программа использует эти данные
И не нужны бубны с приватами/пабликами/войдами
потери на IO операциях не велики
Минус - нужно контролить пути к папкам и их создания, добавляется неймспейс файлов
Проще всего, как писали выше, сделать переменную (private или public зависит от расположения тестовых методов), далее сделать в первом тесте assertNotNull на получаемые данные, и присвоить полученный урл этой переменной, после чего (если это TestNG) дописать параметр второго теста вида @Test(dependsOnMethd = “метод 1 теста”). Таким образом, второй тест проигнорируется, если первый не получил значение урла, и выполнится, когда урл задан. То же самое для Теста 3.