【发布时间】:2020-06-06 19:15:10
【问题描述】:
我已经为我的应用程序创建了基本类。我正在尝试在 TestHarness 构造函数下为我的两个类运行手动单元测试,但遇到错误: 类中的构造函数 Person 不能应用于给定类型 必需:无参数 找到:字符串,字符串,整数 原因:实际参数列表和形式参数列表的长度不同
和
找不到符号 符号:方法 setLastName(String) 位置:Person 类型的变量 p1
这是我的 Person.java 类:
public class Person {
private String firstName, lastName;
private Integer age;
public Person (String firstName, String lastName, Integer age) {
this.firstName = firstName;
if (firstName == "" || firstName == null)
this.firstName = "No first name given";
this.lastName = lastName;
if (lastName == "" || lastName == null)
this.lastName = "No last name given";
this.age = age;
}
public String getFirstName () {
return firstName;
}
public void setFirstName (String firstName) {
if (firstName == "" || firstName == null)
this.firstName = "No first name given";
else
this.firstName = firstName;
}
public String getLastName () {
return lastName;
}
public void setLastName (String lastName) {
if (lastName == "" || lastName == null)
this.lastName = "No last name given";
else
this.lastName = lastName;
}
public Integer getAge () {
return age;
}
public void setAge (Integer age) {
this.age = age;
}
@Override
public String toString() {
return "First Name: "+firstName + "\nLast Name : " + lastName +
"\nAge: " + ((age<=0 || age>=120)? "No age given" : age);
}
}
这是我的 Case.java 类:
public class Case {
private String caseID ="" ;
public Case (String newCaseID) {
this.caseID = newCaseID;
if (caseID == "" || caseID == null)
this.caseID = "No case ID given";
else
this.caseID = caseID;
}
public String getCaseID () {
return caseID;
}
public void setCaseID (String newCaseID) {
if (caseID == "" || caseID == null)
this.caseID = "No case ID given";
else
this.caseID = caseID;
}
@Override
public String toString() {
return "Case ID: "+ caseID;
}
}
这是我的 TestHarness.java 类:
package HHHN;
/**
*
* @author 18057
*/
public class TestHarness {
public TestHarness () {
//Person test cases
//Test 1 - valid first name
Person p1 = new Person("","Smith",14);
System.out.print("Person information: " + p1.toString());
//change first name
p1.setFirstName("Laura");
System.out.println(p1.toString());
//Test 2 - valid last name
Person p2 = new Person("Laura","",14);
System.out.print("Person information: " + p2.toString());
//change last name
p2.setLastName("Smith");
System.out.println(p2.toString());
//Test 3 - valid age
Person p3 = new Person("Laura","Smith",0);
System.out.print("Person information: " + p3.toString());
//change age
p3.setAge(14);
System.out.println(p3.toString());
//Case test cases
//Test 1 - valid caseID
Case c1 = new Case("");
System.out.println("Missing person case ID: "+c1.toString());
//change case ID
c1.setCaseID("V1234");
System.out.print(c1.toString());
}
}
任何帮助将不胜感激。
如果需要任何其他信息,请告诉我。
【问题讨论】:
-
我快速检查了代码,看起来没问题。你用的是什么IDE?或者你是如何编译代码的?我有预感你有一些用旧代码编译的类。
-
我使用的是 Netbeans 11.1
标签: java unit-testing