2017-04-04 79 views
-2

如何爲我編寫的BinaryTree類開發JUnit測試?如何使用Junit測試二叉樹?

請提供建議或提供示例,以便我可以更好地瞭解如何在Junit中測試二叉樹。

package binaryTree; 

import javax.xml.soap.Node; 

public class BinaryTree<T extends Comparable<T>> implements BTree<T> { 
    private TreeNode root; 
    Node current = (Node) root; 
    @Override 

    public void insert(T value) { 
     if (root == null) { 
      root = new TreeNode(value); 
      } else if (value.compareTo(value()) < 0) { 
      root.getleft().insert(value); 
      } else { 
      root.right().insert(value); 
      } 
    } 

    @Override 
    public T value() { 
     if (this.root != null) { 
      return (T) this.root.value(); 
     } else { 
      return null; 
     } 
    } 

    @Override 
    public BTree<T> left() { 
     if (this.root != null) { 
      return this.root.getleft(); 
     } else { 
      return null; 
     } 
    } 

    @Override 
    public BTree<T> right() { 
     if (this.root != null) { 
      return this.root.right(); 
     } else { 
      return null; 
     } 
    } 
} 
+0

我提供了一個簡單的例子來測試一個虛擬的'add'函數。您需要導入您的'BinaryTree'類,併爲此編寫測試用例。也就是說,我認爲你需要澄清你問:你不知道**如何測試二叉樹**或**關於如何編寫一個簡單的JUnit測試**。讚賞https://stackoverflow.com/help/mcve最小,完整和可驗證的例子 – sam

回答

1

絕對讀@tpitsch的文章中的文檔。但是這裏有一個簡單的例子讓你開始。

import static org.junit.Assert.*; 
import org.junit.Test; 

// This test class contains two test methods 
public class SimpleTest { 

    private int add(int a, int b) { 
     return a + b; 
    } 

    @Test public void test1() throws Exception 
    { 
     System.out.println("@Test1"); 
     assertEquals(add(1, 1), 2); 
    } 

    @Test public void test2() throws Exception 
    { 
     System.out.println("@Test2"); 
     assertEquals(add(100, -30), 70); 
    } 
} 

我們正在測試的功能add

@Test註釋每個函數是JUnit測試方法。每個測試方法都作爲單獨的JUnit測試運行。函數名稱test1()test2()並不重要。

在測試方法中,您可以將assertions(如assertEquals())確保add函數按預期運行。