gpt4 book ai didi

java - 用于域测试的 Junit @Parameters

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

我在 Junit 中遇到参数化测试问题。我已经坚持了一段时间,我想知道是否有人可以帮助我。

这是我的代码

@RunWith(Parameterized.class)
public class DomainTestWithinBorders {

int x;
float y;
boolean expectedOut;

void DomainTest(int xIn, int yIn, boolean out) {
this.x = xIn;
this.y = yIn;
expectedOut = out;
}

@Test
public void testEqual() {
boolean actualOut = (x == y);
assertEquals(expectedOut, actualOut);
}

@Parameters
public static Collection<Object[]> data() {
Object[][] values = { { 0, 10.0, false }, { 1, 16.0, false },
{ 17, 17.0, true } };
return Arrays.asList(values);
}
}

运行时出现以下错误:

java.lang.IllegalArgumentException: wrong number of arguments

我不知道为什么会出现此错误。我觉得我已经尝试了一切。

最佳答案

首先,你的构造函数并不是真正的构造函数:

void DomainTest(int xIn, int yIn, boolean out) {
this.x = xIn;
this.y = yIn;
expectedOut = out;
}

应该是:

public DomainTestWithinBorders(int xIn, float yIn, boolean out) {
this.x = xIn;
this.y = yIn;
this.expectedOut = out;
}

(注意 yIn 的正确类型是 float,而不是 int):


如果修复此问题,您仍然会遇到以下异常:

java.lang.IllegalArgumentException: argument type mismatch

要修复它,更改:

Object[][] values = { { 0, 10.0, false }, { 1, 16.0, false },
{ 17, 17.0, true } };

到:

Object[][] values = { { 0, 10.0f, false }, { 1, 16.0f, false },
{ 17, 17.0f, true } };

关于java - 用于域测试的 Junit @Parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545541/

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