首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用多个参数化数据源

如何使用多个参数化数据源
EN

Stack Overflow用户
提问于 2018-09-20 02:43:03
回答 1查看 56关注 0票数 1

在Junit中使用Parameterized

我想使用来自单独类的两个字符串userId and account。我知道这对TestData.users String[]很有效,但我不确定如何让它也返回TestData.accounts String[]和配对数据。

目标是将每个userId和account配对到每个测试中。

例如: test1使用user1和acct1执行测试,test2使用user2和acct2执行测试,以此类推。

代码语言:javascript
复制
@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

代码语言:javascript
复制
public static String[] users = { "user1", "user2", "user3", "user4", "user5" };
public static String[] accounts = { "acct1", "acct2", "acct3", "acct4", "acct5" };

我是不是漏掉了什么很明显的东西?提前感谢您的指导!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-20 04:32:32

你可以这样做:

代码语言:javascript
复制
@Parameters
 public static Collection userPlusAccount() {
  return Arrays.asList(new Object[][] {
     { "user1", "acct1" },
     { "user2", "acct2" },
     { "user3", "acct3" },
     { "user4", "acct4" },
     { "user5", "acct5" }
  });
 }

代码语言:javascript
复制
@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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52412347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档