Связывание пары строк в Java 7 и цикл над ними

#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. ДА… Вам нужно будет заполнить данные.