我在编写测试驱动程序时遇到了麻烦
I am having troubles writing a test driver
我第一次寻求帮助来解决问题,不确定是什么导致了这个问题。我写了这两个 classes,作业要求我做一个测试驱动程序来证明 classes 工作。
学生Class:
public class Student{
private Course[] courseList;
private static int numCourses;
private final int maxCourses;
public Student(int max){
maxCourses = max;
courseList = new Course[numCourses];
numCourses = 0;
}
// part 1, done
public boolean addCourse(Course newClass){
boolean success = false;
for(int i=0; i<=maxCourses; i++){
if(i == numCourses){
courseList[i] = newClass;
success = true;
numCourses++;
}
}
return success;
}
// part 2, done
public boolean dropCourse(Course oldClass){
boolean success = false;
for(int i=0; i<=courseList.length; i++){
if (courseList[i] == oldClass){
courseList[i] = null;
numCourses--;
success = true;
}
}
return success;
}
// part 3, done.
public int getNumCourses(){
return numCourses;
}
//part 4, done
public boolean isFullTime(){
boolean success = false;
if (numCourses >= 3){
success = true;
}
return success;
}
// part 5, done
public String getClassList(){
String list = "";
for(int i=0;i<=numCourses; i++){
list = courseList[i].getID() + "\t" + courseList[i].getName() + "\n";
}
return list;
}
}
和一门课程class:
public class Course{
private String name;
private int id;
private static int nextID = 200000;
public Course(String nameIn)
{
name = nameIn;
id = nextID;
nextID++;
}
public String getName(){
return name;
}
public int getID(){
return id;
}
}
出于某种原因,如果我让测试驱动程序变得如此简单:
public class tester{
public static void main(String[] args){
Course one = new Course(Java);
}
}
我在参数中收到一条错误消息,说找不到符号
javac tester.java
tester.java:6: error: cannot find symbol
one = new Course(name);
^
symbol: variable name
location: class tester
1 error
我有一个更长的测试驱动程序,但它没有超过前几行,因为这是相同的错误,只是几个相同的错误。
感谢您的宝贵时间。
编辑:我错误地将 Student class 放入了两次,在我的简短测试驱动程序中,唯一使用的 class 是 Course class。
问题是因为Java两边没有引号,编译器把它当作变量名。由于它未定义,编译器无法找到它。使用 Course one = new Course("Java");
我第一次寻求帮助来解决问题,不确定是什么导致了这个问题。我写了这两个 classes,作业要求我做一个测试驱动程序来证明 classes 工作。
学生Class:
public class Student{
private Course[] courseList;
private static int numCourses;
private final int maxCourses;
public Student(int max){
maxCourses = max;
courseList = new Course[numCourses];
numCourses = 0;
}
// part 1, done
public boolean addCourse(Course newClass){
boolean success = false;
for(int i=0; i<=maxCourses; i++){
if(i == numCourses){
courseList[i] = newClass;
success = true;
numCourses++;
}
}
return success;
}
// part 2, done
public boolean dropCourse(Course oldClass){
boolean success = false;
for(int i=0; i<=courseList.length; i++){
if (courseList[i] == oldClass){
courseList[i] = null;
numCourses--;
success = true;
}
}
return success;
}
// part 3, done.
public int getNumCourses(){
return numCourses;
}
//part 4, done
public boolean isFullTime(){
boolean success = false;
if (numCourses >= 3){
success = true;
}
return success;
}
// part 5, done
public String getClassList(){
String list = "";
for(int i=0;i<=numCourses; i++){
list = courseList[i].getID() + "\t" + courseList[i].getName() + "\n";
}
return list;
}
}
和一门课程class:
public class Course{
private String name;
private int id;
private static int nextID = 200000;
public Course(String nameIn)
{
name = nameIn;
id = nextID;
nextID++;
}
public String getName(){
return name;
}
public int getID(){
return id;
}
}
出于某种原因,如果我让测试驱动程序变得如此简单:
public class tester{
public static void main(String[] args){
Course one = new Course(Java);
}
}
我在参数中收到一条错误消息,说找不到符号
javac tester.java
tester.java:6: error: cannot find symbol
one = new Course(name);
^
symbol: variable name
location: class tester
1 error
我有一个更长的测试驱动程序,但它没有超过前几行,因为这是相同的错误,只是几个相同的错误。
感谢您的宝贵时间。 编辑:我错误地将 Student class 放入了两次,在我的简短测试驱动程序中,唯一使用的 class 是 Course class。
问题是因为Java两边没有引号,编译器把它当作变量名。由于它未定义,编译器无法找到它。使用 Course one = new Course("Java");