JUnit 尝试测试有效输入以查看它 returns 是否是正确的值
JUnit trying to test a valid input to see if it returns the correct value
我正在尝试测试 getPoints 以使用 Junit5 测试检查它 returns 是否是正确的值。
public class Grade {
private final int points;
public int getPoints() {
return points;
}
public Grade(int p) throws IllegalArgumentException {
if(p<1 || p>20)
throw new IllegalArgumentException();
points = p;
}
}
目前我的测试是:
@Test
void PointReturnTest() {
int p = 15;
assertSame(p,p);
}
我不认为我实际上在测试 getPoints,因为它没有链接到我上面的 Junit 测试 ^。我问的原因是因为当我输入:
int p = 30;
assertSame(p,p);
Junit 测试在无效时仍然通过
if(p<1 || p>20)
有没有更好的方法来测试这个?
编辑:
目前这是我拥有的:
@Test
void PointReturnTest() {
int p = 15;
Grade grade = new Grade(p);
assertEquals(p, p.getPoints());
}
但令人担忧的是它说:“无法在基本类型 int 上调用 getPoints()”
也许您正在寻找这样的东西?
@Test
void PointReturnTest() {
int p = 15;
Grade grade = new Grade(p);
assertEquals(p, grade.getPoints());
}
使用您的代码:
@Test
void PointReturnTest() {
int p = 15;
assertSame(p,p);
}
断言比较 15 和 15.. p 是局部的,不是 Grade 中的 p。
因此你不能写:
@Test
void PointReturnTest() {
int p = 15;
Grade grade = new Grade(p);
**assertEquals(p, p.getPoints());**
}
p是局部变量(int)...写grade.getPoints()。正如已经建议的那样
我正在尝试测试 getPoints 以使用 Junit5 测试检查它 returns 是否是正确的值。
public class Grade {
private final int points;
public int getPoints() {
return points;
}
public Grade(int p) throws IllegalArgumentException {
if(p<1 || p>20)
throw new IllegalArgumentException();
points = p;
}
}
目前我的测试是:
@Test
void PointReturnTest() {
int p = 15;
assertSame(p,p);
}
我不认为我实际上在测试 getPoints,因为它没有链接到我上面的 Junit 测试 ^。我问的原因是因为当我输入:
int p = 30;
assertSame(p,p);
Junit 测试在无效时仍然通过
if(p<1 || p>20)
有没有更好的方法来测试这个?
编辑: 目前这是我拥有的:
@Test
void PointReturnTest() {
int p = 15;
Grade grade = new Grade(p);
assertEquals(p, p.getPoints());
}
但令人担忧的是它说:“无法在基本类型 int 上调用 getPoints()”
也许您正在寻找这样的东西?
@Test
void PointReturnTest() {
int p = 15;
Grade grade = new Grade(p);
assertEquals(p, grade.getPoints());
}
使用您的代码:
@Test
void PointReturnTest() {
int p = 15;
assertSame(p,p);
}
断言比较 15 和 15.. p 是局部的,不是 Grade 中的 p。
因此你不能写:
@Test
void PointReturnTest() {
int p = 15;
Grade grade = new Grade(p);
**assertEquals(p, p.getPoints());**
}
p是局部变量(int)...写grade.getPoints()。正如已经建议的那样