2017-04-04 4 views
-2

Wie entwickle ich JUnit-Test für die Klasse BinaryTree, die ich geschrieben habe?So testen Sie Binärbaum mit Junit?

Bitte geben Sie Beispiele an, damit ich besser verstehen kann, wie man den Binärbaum in Junit testet.

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

Ich stellte ein einfaches Beispiel zum Testen einer Dummy 'add' -Funktion zur Verfügung. Sie müssen Ihre 'BinaryTree'-Klasse importieren und Testfälle dafür schreiben. Das heißt, ich denke, Sie müssen klarstellen, was Sie fragen: Sind Sie sich nicht sicher, ** wie man Binärbäume ** testet, oder wie ** man einen einfachen JUnit-Test schreibt **? Minimale, vollständige und überprüfbare Beispiele werden geschätzt https://stackoverflow.com/help/mcve – sam

Antwort

1

Lesen Sie auf jeden Fall die Dokumentation in @ tpitsch's Beitrag. Aber hier ist ein einfaches Beispiel, um loszulegen.

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); 
    } 
} 

Wir testen die Funktion add.

Jede Funktion mit der Annotation @Test ist eine JUnit-Testmethode. Jede Testmethode wird als separater JUnit-Test ausgeführt. Die Funktionsnamen test1() und test2() sind nicht wichtig.

In einer Testmethode können Sie assertions wie assertEquals() platzieren, die sicherstellen, dass die add Funktion wie erwartet ausgeführt wird.