public class Student{
private String name; // key field
private int ID;
private double GPA;
public Student(String name, int ID, double GPA){
this.name= name;
this.id= ID;
this.gpa=GPA;
}
public void setName(String name){
this.name= name;
}
public String toString() {
return " Student Name: " + name + " Student ID: " + ID + "Student GPA: " + GPA;
}
public String getName() {
return name;
}
public void setID(int ID) {
this.ID= ID;
}
public int getID(){
return ID;
}
public void setGPA(double GPA){
this.GPA= GPA;
}
public double getGPA(){
return GPA;
}
}

public class StudentListings{
private int next;
private int size;
private StudentListing[] data;
public StudentListings(){
next=0;
data= new StudentListings[Size];
size= Size;
} // end of constructor
public boolean insert(StudentListings newStudentListing) {
if(next>=size) // the structure is full
return false;
// store a deep copy of the client's node
data[next]= new StudentListing.deepCopy();
if(data[next]== null)
return false;
next= next + 1; // prepare for the next insert
return true;
} // end of insert method
public StudentListings fetch(String targetKey){
StudentListings studentListings;
StudentListings temp;
// access the node using a sequential search
int i=0;
while(i < next &&!(data[i].compareTo(targetKey)==0)
{
i++;
}
if(i== next) // node not found
return null;
// deep copy the node's information into the client's node
studentListings= data[i].deepCopy();
if(i!= 0) // bubble-up accessed node
{
temp= data[i-1];
data[i-1]=data[i];
data[i]= temp;
}
return studentListings;
} // end of fetch method
public boolean delete(String targetKey){
int i=0;
while(i < next && !(data[i].compareTo(targetKey)==0))
{
i++;
}
if(i==next) // node not found
// move the last node into the deleted node's position
return false;
data[i]= data[next-1];
data[next-1]=null;
next= next-1;
return true; // node found and deleted
} // end of delete method
public boolean update(String targetKey, StudentListings newStudentListing){
if(delete(targetKey)== false) // node not in the structure
return false;
else if(insert(newStudentListing)==false) // insufficient memory
return false;
else
return true; // node found and updated
} // end of update method
public void showAll(){
for(int i=0; i< next; i++)
System.out.println(data[i].toString());
} // end of showAll method
public static void main(String[] args){
StudentListings obj1= new StudentListings();
// how do I test each of this methods to see if they actually work?
obj1.insert();
obj1.fetch();
obj1.delete();
obj1.update();
obj1.showAll();
}
} // end of StudentListings class
我创建了一个Java程序,旨在跟踪学生的姓名,身份证号码和GPA,但我想知道如何根据代码测试我的每个方法我有?有人能帮我吗?谢谢!这是我到目前为止的代码。另外,在使用my方法时,我的实例变量将如何发挥作用。我拥有的一些方法是insert方法,fetch方法,delete和update方法。
答案 0 :(得分:0)
好的,所以我理解你的问题是“我如何开始测试?教程没有帮助我。”我认为在您完成教程中的代码之前,还有一个步骤要启动。这是一些好书会告诉你的东西,但在这里适合答案,所以在这里给你。
当您编写测试时,您正在测试行为是否符合设计,这意味着您应该从设计行为开始。我的建议是你要经历以下过程:
文档(通过javadoc注释)您的类和所有方法。记录参数,输出和副作用。 “这就是应该做的。”除非你知道它应该做什么,否则你无需测试。
在另一份文件中,写下一个角落案例列表,您想要支持哪些区域,但在代码发生变化时可能会中断。
然后选择jUnit教程并为您在步骤2中编写的极端案例编写测试,确保行为符合步骤1中的记录。