在创建该类的实例时,如何测试所有数据结构和ShowAll()方法?

时间:2017-09-22 04:25:37

标签: java algorithm data-structures



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方法。

1 个答案:

答案 0 :(得分:0)

好的,所以我理解你的问题是“我如何开始测试?教程没有帮助我。”我认为在您完成教程中的代码之前,还有一个步骤要启动。这是一些好书会告诉你的东西,但在这里适合答案,所以在这里给你。

当您编写测试时,您正在测试行为是否符合设计,这意味着您应该从设计行为开始。我的建议是你要经历以下过程:

  1. 文档(通过javadoc注释)您的类和所有方法。记录参数,输出和副作用。 “这就是应该做的。”除非你知道它应该做什么,否则你无需测试。

  2. 在另一份文件中,写下一个角落案例列表,您想要支持哪些区域,但在代码发生变化时可能会中断。

  3. 然后选择jUnit教程并为您在步骤2中编写的极端案例编写测试,确保行为符合步骤1中的记录。