gpt4 book ai didi

java - JUnit 抛出 IllegalArgumentException

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:32 26 4
gpt4 key购买 nike

我正在尝试对 JUnit4 测试进行参数化,但我一直收到 IllegalArgumentExcpetion: Wrong number of arguments,尽管我已经对我的构造函数进行了三重检查。我的代码就像(请注意变量在类的顶部定义为相同类型):

@RunWith(Parameterized.class)
public class OrderTest {

private Order order;

public OrderTest(byte id, byte coffee, byte cafelatte, byte smoothie, byte iceCoffee) {
order = new Order(new byte[] {id, coffee, cafelatte, smoothie, iceCoffee});
}

@Parameters
public static Collection order() {
return Arrays.asList(new byte[][] {
{1, 1, 0, 0, 0},
{2, 1, 1, 0, 0},
{3, 1, 1, 1, 1},
{14, 80, 127, 127, 127}
});
}

我的Order类是

public class Order {

public Order(byte[] orders) {
id = orders[0];
coffee = orders[1];
cafeLatte = orders[2];
smoothie = orders[3];
iceCoffee = orders[4];
}

最佳答案

让我们让它变得简单和干净:

@RunWith(Parameterized.class)
public class OrderTest {

@Parameterized.Parameter
public Order order;

@Parameterized.Parameters
public static Collection<Order> orders() {
return Arrays.asList(
new Order(1, 1, 0, 0, 0),
new Order(2, 1, 1, 0, 0),
new Order(3, 1, 1, 1, 1),
new Order(14, 80, 127, 127, 127)
);
}

如果你为Order实现一个toString()方法,你可以用@Parameterized.Parameters替换@Parameterized.Parameters (name = "{index}: {0}") 以便更好地了解当前测试的内容。

关于java - JUnit 抛出 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37394694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com