2017-06-05 11 views
-3

Ich habe ein Assingment, das von mir verlangt zu testen, ob eine Matrix eine bestimmte Anforderung erfüllt, die ich abgeschlossen habe, und es dann in einem JUnit-Test zu testen, von dem ich nicht weiß, wie. Ich habe den Ordner für den JUnit-Test erstellt, aber ich weiß nicht, wie ich den Test schreiben soll. Bisher habe ich den Test in der Hauptklasse gemacht.Wie schreibe ich JUnit Tests?

public static void main(String[] args) { 
    int matrix[][] = {{2,7,6},{9,5,1},{4,3,8}}; 

    System.out.println(isMagicSquare(matrix)); 

    // changing one element 
    matrix[0][2] = 5; 
    System.out.println(isMagicSquare(matrix)); 
} 

public static boolean isMagicSquare(int[][] matrix) { 
    // actual code omitted for the sake of simplicity. 
} 
+0

Haben Sie sich Beispiele für JUnit-Tests auf der JUnit-Website angesehen? –

+0

Ja, ich habe versucht, aber ich konnte nichts hilfreiches finden – none

+1

Im Allgemeinen würden Sie eine andere Klasse erstellen (zB 'TestMagicSquare'), und Annotationen verwenden, um die Methoden zu markieren, die Tests aufrufen (zB' testValidSquare() 'und' testInvalidSquare() '), schreiben Sie die Methoden entsprechend und rufen Sie sie anschließend mit dem JUnit-System auf. Wenn Sie Eclipse oder eine andere IDE verwenden, wird die Ausführung der Tests etwas vereinfacht. – KevinO

Antwort

0

Zuerst erstellen Sie die Klasse, die Sie testen möchten.

public class MagicSquare 
{ 
    private int[][] matrix; 

    public MagicSquare(int[][] matrix) 
    { 
     this.matrix = matrix; 
    } 

    public boolean isValid() 
    { 
     // validation logic 
    } 
} 

Dann erstellen Sie die Testklasse.

import static org.junit.Assert.assertFalse; 
import static org.junit.Assert.assertTrue; 

import org.junit.Test; 

public class MagicSquareTest 
{ 
    @Test 
    public void testMagicSquare1() 
    { 
     int[][] matrix = { { 2, 7, 6 }, { 9, 5, 1 }, { 4, 3, 8 } }; 
     MagicSquare square = new MagicSquare(matrix); 
     // this is a valid magic square 
     assertTrue(square.isValid()); 
    } 

    @Test 
    public void testMagicSquare2() 
    { 
     int[][] matrix = { { 2, 7, 5 }, { 9, 5, 1 }, { 4, 3, 8 } }; 
     MagicSquare square = new MagicSquare(matrix); 
     // this is an invalid magic square 
     assertFalse(square.isValid()); 
    } 
} 

Schließlich sehen die Antworten auf this question, wie die Testfälle von der Kommandozeile ausgeführt werden.