我已经按照此页面上的示例设置了参数化测试:
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 "}
//
// ;
//
// }
}