Java JUnit测试错误
这就是我要做的:计算一个人的确切年龄,给出他们的出生年份、月份和日期,以及当前的年份、月份和日期 你可以用这个数学技巧来计算年龄Java JUnit测试错误,java,junit,Java,Junit,这就是我要做的:计算一个人的确切年龄,给出他们的出生年份、月份和日期,以及当前的年份、月份和日期 你可以用这个数学技巧来计算年龄 将输入的值转换为以下格式:YYYYMMDD 从当前信息中减去出生信息 答案的前三位数字是此人的年龄。(请注意,在大多数情况下,第一位数字将为零) 例如: Birth: 19900510 Current: 20100803 Current - Birth : 0200293 First 3 Digits: 020 This person is 20 years old.
Birth: 19900510
Current: 20100803
Current - Birth : 0200293
First 3 Digits: 020
This person is 20 years old.
这是我的主.java文件
class CodeClass {
public int ageCalculator(int birthYear, int curYear, int birthMonth, int curMonth, int birthDay, int curDay)
{
String answer;
int current = curYear*10000 + curMonth*100 + curDay;
int birth = birthYear*10000 + birthMonth*100 + birthDay;
answer=Integer.toString(current-birth);
answer = answer.substring(0,2);
return(Integer.parseInt(answer));
}
}
这是JUnit测试文件
import junit.framework.TestCase;
import org.junit.Test;
public class CodeTest extends TestCase {
@Test
public void testGetNum() {
assertEquals(26, CodeClass.ageCalculator(1983, 2010, 4, 4, 5, 2));
assertEquals(27, CodeClass.ageCalculator(1983, 2010, 6, 10, 15, 1));
}
}
这是我运行测试时的错误
Your code did not compile: /CodeTest.java:6: non-static method ageCalculator(int,int,int,int,int,int) cannot be referenced from a static context
assertEquals(26, CodeClass.ageCalculator(1983, 2010, 4, 4, 5, 2));
^
/CodeTest.java:7: non-static method ageCalculator(int,int,int,int,int,int) cannot be referenced from a static context
assertEquals(27, CodeClass.ageCalculator(1983, 2010, 6, 10, 15, 1));
^
2 errors
您正在尝试访问
ageCalculator
,这是一种静态方式的非静态
方法:
CodeClass.ageCalculator
根据您的需要,可以标记方法
static
,或者创建类的and实例,然后在该实例上调用该方法。您的方法ageCalculator(-code>)
在CodeClass类中,实例方法意味着您试图通过类名访问的非静态方法。只有静态方法可以使用类名直接访问。但要使用非静态方法,请创建CodeClass类的实例,然后对该实例或对象调用ageCalculator(-,,,,,,,,,,,,,,
方法,如下所示:
import junit.framework.TestCase;
import org.junit.Test;
public class CodeTest extends TestCase {
@Test
public void testGetNum() {
CodeClass cc= new CodeClass();
assertEquals(26, cc.ageCalculator(1983, 2010, 4, 4, 5, 2));
assertEquals(27, cc.ageCalculator(1983, 2010, 6, 10, 15, 1));
}
}
ageCalculator()不是静态方法。使用新的CodeClass().ageCalculator(…)或使ageCalculator()成为静态方法(即公共静态int-ageCalculator()@user2766873在堆栈溢出时,有一种更好的方式通过接受答案来表示感谢。要接受答案,只需单击指向答案的勾号。接受答案有助于其他也面临相同问题的人。干杯!