java使用测试类查看两个整数值是否适合参数
如果将这两个值设置为介于0和29之间的值,则参数中提供的数字是这两个数字的总和,并且参数编号和实例编号相同
以下是我到目前为止编写的代码:
public class TwoNumbers {
private int firstnum = 0;
private int secondnum = 0;
//Constructor that initialize the first and second number
//to a value of 0
public TwoNumbers()
{
firstnum = 0;
secondnum = 0;
}
public int getFirstNum(){
return firstnum;
}
public int getSecondNum(){
return secondnum;
}
public boolean setFirstNum (int firstnum){
if (firstnum >= 0 && firstnum <=29){
return true;
}
else {
return false;
}
}
public boolean setSecondNum (int secondnum)
{
if (secondnum >= 0 && secondnum <=29){
return true;
}
else {
return false;
}
}
public boolean checkSum (int sum){
if (sum == firstnum + secondnum){
return true;
}
else {
return false;
}
}
public boolean equals (int numbers1) {
if (firstnum == secondnum){
return true;
}
else{
return false;
}
}
}
# 1 楼答案
正如@GlenPierce所评论的,但有一些变化
应该是
现在可以了
即使你从两个数字课上得到了正确或错误。实例的值始终为零,而不在setFirstNum和setSecondNum中设置它们
使用this关键字进行设置。这只是解决方案之一,还有其他方法,比如@GlenPierce所做的
第14和第15次
这将失败,因为你的逻辑是错误的。在中。在传递整个对象时,两个数字的equal方法接受int
将14和15和相等的方法改成这个,一切都会好起来的
# 2 楼答案
给你一些建议:
assertEquals("default num1 is zero", 0, new TwoNumbers().getFirstNum())
expected
注释键)李>如果你从这些变化开始,我怀疑你的问题会很快变得非常明显,你会从一开始就学到更好的实践
# 3 楼答案
你的设定者没有设定新的值
测试14和15没有检查数字的值
return numbers1.equals(numbers2);
应该改为return numbers1.firstNumber == numbers2.firstNumber && numbers1.secondNumber == numbers2.secondNumber;
# 4 楼答案
我认为你应该检查你设定的值
在15号案例中,您正在检查1是否等于4。因此,它返回
false
,这个测试用例没有任何问题更改为:
在2号案例中,您没有设置
secondNum
,但您正在尝试检查它,这就是它返回false
的原因添加以下行:
在第6个例子中,您没有设置
firstNum
,但是您正在尝试检查它,这就是为什么它也返回false
添加以下行:
当我查看14号案件时,我意识到了你的错误。。setter方法不会设置值。它们只是返回假或真。请更新如下: