Спасибо за ответ.Я понимаю концепцию статического теста, с добавлением, что тест не должен иметь «известный» результат, но больше того, что он должен иметь «ожидаемый» результат, который должен соответствовать, в том смысле, что он тестирует что-то для проверкиего функциональность.Случай переключения является допустимым сценарием, честно говоря, я не вижу, что происходит после того, как утверждение не выполнено в опубликованном примере (тест также не пройден).Решение, которое я реализовал, состоит в том, чтобы определить, разблокирован ли у пользователя следующий уровень в конце предыдущего с помощью метода, подобного следующему:
public void isElementExistingAlternateResult(WebElement element) {
boolean isElementFound = true;
try {
wait.until(ExpectedConditions.elementToBeClickable(element));
} catch (Exception e) {
isElementFound = false;
}
if (isElementFound == true) {
System.out.println("test is continued...");
} else {
Reporter.getCurrentTestResult().setStatus(ITestResult.SUCCESS);
System.out.println("next level not unlocked.");
}
Таким образом, только если следующий доступный уровень не найден, тест будет определять это реальное время, и он остановится и пройдет именно в этот момент.Обратите внимание, что это чередует результат неудачного теста с классом TestNG Reporter в:
Reporter.getCurrentTestResult().setStatus(ITestResult.SUCCESS);
Недостаток - это делает тест неспособным проверить функциональность наличия различныхколичество уровней, разблокированных для разных пользователей, так как независимо от количества уровней, которые были разблокированы, он будет тестировать их и проходить, но это лучше, чем не автоматизировать.
Преимущество - это супер просто и отлично подходит для тестаслучай приблизительно 500 шагов (делает только некоторые из них "динамическими").