Записки тестера Простые правила написания функциональных автотестов.
1) Имя тестового метода должно ясно описывать, что этот тест делает. Например имя testLogin более информативно, чем test1_1. Какие плюсы могут быть от такого именования? Вам будет проще ориентироваться в тестах. Другим будет проще их использовать и поддерживать
2) Лишняя логика в тестовом методе будет только усложнять его. Посмотрим на следующий тест :
public testPostMessage() { selenium.type("id=title", "Hello world"); selenium.type("id=text", "and everybody!!!"); for (int i = 0; i < 3; i++) { selenium.type("id=tags" + i, "test post" + i); } selenium.select("id=access", "label=all"); selenium.click("id=submit"); }
Даже с простыми idшками не сразу можно понять что происходит
в этом тесте. Немного упростим его :
Код увеличился в размере, но при этом стал более понятным.
3) Тестовый метод должен быть коротким настолько, насколько это возможно. Основной плюс опять же в простоте понимания такого теста. Есть у меня два теста :
public void testLogin() { goToLoginForm(); enterLogin(); enterPass(); clickLogin(); assertTrue(isLoggedIn()); }
public void testLogin() { login(); assertTrue(isLoggedIn()); }
Второй вариант теста выглядит более понятным,
несмотря на простоту примеров. С ростом размеров теста, разница между первым и вторым вариантами написания теста будет все больше и больше.
4) С помощью констант можно сделать тестовые методы более понятными. Есть следующий тест :
public void testPassword() { assertTrue(login.isPasswordValid("qwerty")); assertFalse(login.isPasswordValid("asdf")); }
Добавим в него несколько констант,
и код станет более понятным :