2014-05-05 137 views
0

我想知道如何实现一个测试程序来彻底测试这些方法,并通过在测试程序中使用两个Csc2001LinkedList对象来完成此操作,一个作为有序列表维护,另一个作为无序列表。我知道的一个方面是使用打印方法来检查方法是否正常工作。如何实现测试程序(用Java)来测试Csc2001LinkedList方法?

Csc2001LinkedList

public class Csc2001LinkedList { 

    protected Node head; 

    public Csc2001LinkedList(Node head) 
    { 
     this.head = null; 
    } 

    public Node getHead() 
    { 
     return head; 
    } 

    public void addFirst(char c) 
    { 
     head = new Node(c, head); 
    } 

    public void addAtEnd(char c) 
    { 
     Node n = new Node(c, head); 
     Node temp = head; 

     while(temp.next != null) 
     { 
      temp = temp.next; 
     } 
     temp.next = n; 
    } 

    public void addInOrder(char c) 
    { 
     Node n = new Node(c, head); 

     if(isEmpty()) 
     { 
      addFirst(c); 
     } 
     else 
     { 
      Node pre = head; 
      Node succ = head.next; 

      if(n.ch < pre.ch) 
      { 
       n.next = head; 
       head = n; 
      } 
      else 
      { 
       while(succ != null && n.ch > succ.ch) 
       { 
        pre = succ; 
        succ = pre.next; 
       } 
       n.next = succ; 
       pre.next = n; 
      } 
     } 
    } 

    public boolean isEmpty() 
    { 
     return (head == null); 
    } 

    public char removeFirst() 
    { 
     Node temp = head.next; 

     if(temp != null) 
     { 
      head.next = temp.next; 
      return temp.ch; 
     } 
     else 
     { 
      System.out.println("List is empty"); 
      return '?'; 
     } 
    } 

    public void printList() 
    { 
     Node temp = head; 

     while(temp != null) 
     { 
      System.out.println(temp.ch + " "); 
      temp = temp.next; 
     } 
    } 
} 

节点

public class Node { 

    protected char ch; 
    protected Node next; 

    public Node(char ch, Node next) 
    { 
     this.ch = ch; 
     this.next = null; 
    } 

} 

回答

0

我的建议是第三类添加到您的程序。这个类将是一个驱动程序类,并且将用于彻底测试列表和节点方法。您可以通过以下两种方法之一来执行此操作:

  • 在驱动程序类的主方法中创建一个非常基本的接口。该方法允许您通过键盘输入将字符添加到列表中,并且会自动打印列表,并在添加完成后执行其他任何您想要执行的操作。这是一个不错的选择,因为你不必乱搞文件输入。但是,它确实很难测试诸如删除之类的方法,而不会在UI中投入大量工作。
  • 创建一个方法从文件读入值。创建字符文件以测试您的方法。在驱动程序类的主要方法中,读入文件,将其添加到您创建的列表(排序或结尾),然后打印列表。然后,您可以在可以提前控制其大小和特征的列表上测试其他方法。