@ Даниэль, если нам нужно выполнить какие-либо действия подготовить перед запуском тестов (например, открыть соединение с БД и подготовить в нем тестовые данные, или вызвать другие не-тестируемые здесь службы, или поставить тестовые данные, которые будут использоваться в большинстве тестов ) - мы должны использовать одну из @Before
аннотаций.Они могут быть очень полезными и гибкими, хороший ответ с кодом о них здесь .Как насчет @Dataprovider
- он предоставляет данные прямо в тесты, которым это нужно:
@Test(dataProvider = "Authentication")
public void errorMessageOnLoginWithBadCredentials(String email, String password, String errMsg) {
User badUser = new User(email, password);
at(LoginPage.class)
.loginAs(badUser)
.errorMessage
.shouldHave(exactText(errMsg));
}
@DataProvider(name = "Authentication")
public static Object[][] credentials() {
return new Object[][]{
{" ", " ", "Username is required"},
{"user1@gmail.com", "UserTest@123", "Login and / or password do not match"},
{"user1@gmail.com", " ", "Password is required"},
{"ololo@ololo.com", "admin", "Login and / or password do not match"}
};
}
Чтобы избежать уродливого синтаксиса Object[][] (or Iterator<Object[]>)
, вы также можете использовать @DataSupplier
(см. здесь ), адаптированный для использования, например, с Stream API.
Надеюсь, это будет полезно.