Добрый день,
Вопрос у меня более-менее общий, поэтому создал его в разделе “Общие вопросы”
Прошу поставить на путь истинный.
Начнем с того, что тест в моем понимании, это набор каких-то шагов - сценарий.
Представим следующий тест:
Логинимся на страницу.
Проверяем, что тайтл как ожидаем.
Заходим в аккаунт
Меняем пароль.
Смотрим, что появилось сообщение об успехе.
Выходим.
Я представляю это, как класс, с набором шагов, т.е.:
public class DemoTest(){
@BeforeClass
public void openPageAndLogin(){
somePage.open();
somePage.Login();
}
@Test
public void doesPageTitleAsExpectedAfterLogin(){
Assert.assertEquals(somePage.getTitle, "SomePage Title after Login");
}
@Test
public void doesSuccessMsgAppearAfterPasswordChange(){
somePage.openAccount();
somePage.changePassword();
Assert.assertEquals(somePage.getSuccessPwdChangeMsg(), "Some success msg");
}
@AfterTest
public void logOut(){
somePage.logOut();
}
}
Пример набран на коленке, поэтому строго не судите.
Вот этот класс DemoTest является в моём представлении тестом (что может быть в корне не верным).
Соответственно он абсолютно независим от других тестов.
Но вопрос в том, как упорядочить шаги. Допустим мне кровь из носа надо, чтобы первым прошла проверка тайтла.
Сейчас я решаю подобные проблемы использованием параметра priority.
Таким образом, шаги получаются более-менее независимыми друг от друга, и если один упадет, то следующий все равно запустится.
Вопросы у меня следующие:
- Насколько я ошибаюсь в классификации - класс это тест с шагами.
- Как правильно упорядочивать тесты?
- Как группируете тесты Вы?
На вопрос сподвигло очень частое упоминание, что один класс чуть ли не один шаг. Но в рамках ГУИ мне это представляется не совсем возможным.
А так же, что не должно быть никаких зависимостей (я в этом плане полностью согласен, но лишь отталкиваясь от: класс - тест с шагами)
Вопросы теоретические, т.е. как оно практикуется и как должно быть (Хотя бы в теории)