如何在java中使用junit测试对象数组

时间:2017-04-20 17:55:47

标签: java junit

我是新来的,我也是编程新手。 这是我写的代码,这是项目中的两个类之一,"学生":

interface Comparable{
    public boolean youngerThan(Comparable c);
}

public class Student implements Comparable{
      private String name;
      private int age;


  public Student(String n, int a){
    this.name=n;
    this.age=a;
}

  public String getName(){
      return this.name;
  }

  public int getAge(){
      return this.age;
  }
  public void setStudent(String n, int a){
      this.name=n;
      this.age=a;
  }
  public String toString() {

      return this.getName()+" ("+this.getAge()+"years)";
  }
  public boolean youngerThan(Comparable c){
      Student s;
      s=(Student)c;
      if(this.getAge()>s.getAge())
          return false;
      if (this.getAge()==s.getAge())
          return false;
      else 
          return true;
  }

  public static void main(String[] args){
    Student[] student= new Student[5];

    student[0].setStudent("Marco", 20);
    student[1].setStudent("Giacomo", 19);
    student[2].setStudent("Susan", 24);
    student[3].setStudent("Billie", 25);
    student[4].setStudent("Max", 18);


   }

 }


 }

另一个,包括方法" Ordinator",它使用冒泡排序按顺序排列"学生"根据年龄,从年轻到年长:

public class Ordinator {
    public static void order(Comparable[]list){
        int imin;
        for(int ord=0; ord<list.length-1;ord++){
            imin=ord;
            for(int i=ord +1; i<list.length; i++){
                if(list[i].youngerThan(list[imin]));
                  Comparable temp=list[i];
                  list[i]=list[imin];
                  list[imin]=temp;
            }
        }
    }
}

现在我必须使用Junit测试方法顺序,看它是否有效。但我不知道如何测试一系列物体,特别是在这种情况下。希望有人可以帮忙!在此先感谢:)

1 个答案:

答案 0 :(得分:1)

您只需迭代列表,进行个别比较。

for (int i=1; i<list.length; i++) {
  assertTrue(list[i].compareTo(list[i-1]) >= 0);
}