#java #selenium #junit
#java #selenium #junit
Вопрос:
Учитывая следующий код:-
//setup code and import statements, including:
private static String baseURL = Environment.getTestWebsiteURL();
public static String articleOneName = ArticleCreationTest.getArticleOneName();
public static String articleTwoName = ArticleCreationTest.getArticleTwoName();
public static String articleThreeName = ArticleCreationTest.getArticleThreeName();
public static String articleOnePath = ArticleCreationTest.getArticleOnePath();
public static String articleTwoPath = ArticleCreationTest.getArticleTwoPath();
public static String articleThreePath = ArticleCreationTest.getArticleThreePath();
public static String[] articlesPathArray = {articleOnePath, articleTwoPath, articleThreePath}
@BeforeClass
public static void setup() {
driver = Driver.getURL();
for (String s : articlesArray) {
if (s == null) {
//tell me which articles could not be found
System.out.println("Could not find an article for: " s " , perhaps it wasn't created in the prior test");
} else {
//assuming array holds some path values, append to the baseURL
driver.get(baseURL s);
}
}
@Test...
//run some test assertions against the baseURL path website page that is returned
Мне нужен код для перебора везде, где переменная path содержит значение, и запуска тестов. Текущее решение бесполезно, когда предыдущему ArticleCreationTest не удается сгенерировать article, потому что переменная просто содержит null. Итак, текст: «Не удалось найти статью для: null, возможно, она не была создана в предыдущем тестировании».
Что мне действительно нужно, так это связать articleName с articlePath, чтобы сообщение было примерно таким: «Не удалось найти ArticleOne: возможно, is не был создан», а затем запустить тесты для всех, которые были созданы. Возможно, какая-то хэш-карта или 2D-массив?
Ответ №1:
На основе приведенного кода,
public static String articleOneName = ArticleCreationTest.getArticleOneName();
public static String articleTwoName = ArticleCreationTest.getArticleTwoName();
public static String articleThreeName = ArticleCreationTest.getArticleThreeName();
public static String articleOnePath = ArticleCreationTest.getArticleOnePath();
public static String articleTwoPath = ArticleCreationTest.getArticleTwoPath();
public static String articleThreePath = ArticleCreationTest.getArticleThreePath();
public static String[] articlesPathArray = {articleOnePath, articleTwoPath, articleThreePath}
Похоже, что это список имен статей и путей к статьям
List<String> acticleNames = new ArrayList<String>();
List<String> acticlePaths = new ArrayList<String>();
Список будет содержать проверяемые строки, которые можно использовать для тестов.
Мне нужен код для перебора везде, где переменная path содержит значение, и запуска тестов
Вы можете проверить это условие, проверив, (s != null)
в настоящее время вы проверяете if (s == null)
Комментарии:
1. Спасибо. Извините, я новичок, so….to чтобы получить различные имена и пути в список (из других классов), мне нужно было бы что-то вроде следующего?? общедоступная статическая строка populateArticleData(){ Список<Строка> Имена статей = новый список массивов<Строка>(); Имена статей.добавить(articleOneName); Имена статей.добавить(articleTwoPath)//и т.д…….. Список<Строка> articlePaths = новый ArrayList<Строка>(); articlePaths.add(articlePathOne);//и т.д…. }
2. ДА… Вам нужно будет заполнить данные.