Как использовать несколько источников параметризованных данных - PullRequest
0 голосов
/ 19 сентября 2018

Использование Параметризовано в Junit.

Я хотел бы использовать два String [] (userId и account) из отдельного класса.Я знаю, что это будет нормально работать для TestData.users String [], но я не уверен, как заставить его также вернуть TestData.accounts String [] и связать данные.

Цель состоит в том, чтобы pairот каждого userId и учетной записи в каждом тесте.

Например: test1 использует user1 и acct1 для выполнения теста, test2 использует user2 и acct2 для выполнения теста и т. Д.

@RunWith(Parameterized.class)
public class TestUpdateUserAccounts extends Base {

private String userId;
private String account;

public TestUpdateUserAccounts(String userId, String account) {
    this.userId = userId;
    this.account = account;
}

@Parameters(name = "{0}")
public static Collection userPlusAccount() {
    return Arrays.asList(TestData.users);
    // NEED HELP HERE - HOW TO PAIR EACH TestData.accounts WITH EACH USER
}

@Test
public void checkUserAccount() {
    //code here that will execute some steps
    assertTrue(user.connectedToAccount(account));
}

В TestData.java

public static String[] users = { "user1", "user2", "user3", "user4", "user5" };
public static String[] accounts = { "acct1", "acct2", "acct3", "acct4", "acct5" };

Я что-то упускаю из виду?Заранее спасибо за любые рекомендации!

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете сделать что-то вроде этого:

@Parameters
 public static Collection userPlusAccount() {
  return Arrays.asList(new Object[][] {
     { "user1", "acct1" },
     { "user2", "acct2" },
     { "user3", "acct3" },
     { "user4", "acct4" },
     { "user5", "acct5" }
  });
 }

или

@Parameterized.Parameters
public static Collection userPlusAccount() {
    List<Object[]> list = new ArrayList<>();
    for(int i = 0; i<TestData.getSize(); i++) {
        list.add(new Object[]{TestData.users[i], TestData.accounts[i]});
    }
}

Для получения дополнительной информации посетите: https://www.tutorialspoint.com/junit/junit_parameterized_test.htm

...