Это может помочь ...
Тесты должны быть простыми. БЫСТРО. НЕЗАВИСИМАЯ. и IDEMPOTENT
Если у вас есть большой switch
или if
лестница, то да. Вы должны разделить их на разные тесты. Рассмотрим следующий пример: (это с помощью getting-started-with-selenium рамки)
@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myLongTest() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.store("some_variable", getText("#element");
// some_variable will be "a" | "b" | "c"
switch ((String) get("some_variable")) {
case "a":
click("#a")
.validatePresent("#something");
break;
case "b":
click("#b")
.validatePresent("#something-else");
break;
case "c":
click("#c")
.validatePresent("#something-else-else");
break;
}
}
Вместо длинного теста вы могли делим это на три различных тестовых случаев, по одному для каждого, который по традиционным стандартам было бы хорошо, потому что тогда тесты будут быстрее.
@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myShortTest_CaseA() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.click("#a")
.validatePresent("#something");
}
@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myShortTest_CaseB() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.click("#b")
.validatePresent("#something-else");
}
@Test @Config(url="http://someurl.com", browser = Browser.CHROME)
public void myShortTest_CaseA() {
setText("#username", "some_username")
.setText("#password", "some_password")
.click("#btn-login")
.click("#c")
.validatePresent("#something-else-else");
}
Можете привести пример того, что вы сейчас делаете? Я не уверен, что понимаю, что вы пытаетесь выполнить. – user1071777