在 JUnit 参数化测试中,有没有一种方法可以将对象传递给返回类型,以便我可以验证测试数据?

问题描述 投票:0回答:0

我已经按照此页面上的示例设置了参数化测试:
https://mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/

我也读过这个问题: 遍历数组,每个元素一个 JUnit 测试 并查看了其他网站

在 mkyoung 的示例中,

public static Collection<Object[]> data() {
方法返回一个数组并创建一个新对象。我试图复制这个但遇到了麻烦。

我有@RunWith注解,创建了测试类,并将参数传递给构造函数。 但问题在于测试本身。我在返回声明中传递什么时遇到问题。我认为 testData.account 部分是正确的(也许是大声笑),因为它返回一个列表,但我卡在上面的一点是为测试数据创建一个对象以“坐进去”。

这是我到目前为止所拥有的。

@RunWith(value = Parameterized.class)

public class BuildAccountDataTest {
    private final String accountNumber;
    private final String expectedAccountNumber;
    private final String accountType;
    private final String expectedAccountType;

    public BuildAccountDataTest(String accountNumber, String expectedAccountNumber, String accountType, String expectedAccountType) throws IOException {
        this.accountNumber = accountNumber;
        this.expectedAccountNumber = expectedAccountNumber;
        this.accountType = accountType;
        this.expectedAccountType = expectedAccountType;
    }


    @Parameters
    public static List<Account> data() throws IOException {

        ObjectMapper mapper = new ObjectMapper();
        File testDataFile = new File(BuildAccountDataTest.class.getClassLoader().getResource("testDataForKafka").getFile());

        EntireCard testData = mapper.readValue(testDataFile, EntireCard.class);

        Account a = new Account();

        // return testData.account;  // this gives us all the accounts in the file as a list? i think

        return testData.account.stream(new Object [][]{

        }

//        return List.of(a new Object [][]{
//            { 0, "5402231036194884   "}
//
//            ;
//
//        }

    }
unit-testing junit parameterized
© www.soinside.com 2019 - 2024. All rights reserved.