Java 互惠的JUnit测试
我有一个代码,它取一个有理数的倒数。我也有一个构造函数。这就是我所拥有的:Java 互惠的JUnit测试,java,junit,Java,Junit,我有一个代码,它取一个有理数的倒数。我也有一个构造函数。这就是我所拥有的: private int num; private int den; public Rational(int numIn, int denIn) { num = numIn; den = denIn; } public String reciprocal() { return den + "/" + num; } 我想为这段代码编写一个JUnit测试。到目前为止,我已经做到了这一点,但它一直在失败
private int num;
private int den;
public Rational(int numIn, int denIn) {
num = numIn;
den = denIn;
}
public String reciprocal() {
return den + "/" + num;
}
我想为这段代码编写一个JUnit测试。到目前为止,我已经做到了这一点,但它一直在失败:
int num = 7;
int den = 5;
@Test
public void reciprocal() {
String answer = 7 + "/" +5;
assertTrue(answer == 5 + "/" + 7);
}
我怎样才能使JUnit测试在我的代码中不会失败?您的测试没有测试任何东西。一般来说,测试需要
- 设置一个测试用例(例如,在测试特定条件下构建一个
实例,即7和5)Rational
- 执行要测试的方法/功能(对构造的对象调用
).interactive
- 如果返回结果(倒数值),则断言结果;如果方法返回void并对某些预期值产生副作用,则断言状态更改
@Test
public void reciprocal() {
Rational rat = new Rational(7, 5);
String res = rat.reciprocal();
assertEquals(5 + "/" + 7, res);
}
你的测试不是在测试任何东西。一般来说,测试需要
- 设置一个测试用例(例如,在测试特定条件下构建一个
实例,即7和5)Rational
- 执行要测试的方法/功能(对构造的对象调用
).interactive
- 如果返回结果(倒数值),则断言结果;如果方法返回void并对某些预期值产生副作用,则断言状态更改
@Test
public void reciprocal() {
Rational rat = new Rational(7, 5);
String res = rat.reciprocal();
assertEquals(5 + "/" + 7, res);
}
在测试中,您需要构造要测试的类的实例,
Rational
,调用被测试的方法,然后断言其结果。因此,使用assertEquals
而不是assertTrue
,以便它调用equals()
方法。可能+5的作用与您预期的不同(+可以充当一元运算符)。在测试中,您需要构造要测试的类的实例,Rational
,调用被测试的方法,然后断言其结果。因此,使用assertEquals
而不是assertTrue
,以便它调用equals()
方法。可能+5的作用与您预期的不同(+可以充当一元运算符).