2017-06-05 308 views
-3

我有一個assingment,要求我測試一個矩陣是否滿足我已經完成的某個要求,然後在JUnit測試中進行測試,但我不知道該如何測試。我已經創建了JUnit測試的文件夾,但我不知道如何編寫測試。到目前爲止,我在主課上做了測試。如何編寫JUnit測試?

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

你看過JUnit網站上JUnit測試的例子嗎? –

+0

是的,我嘗試過但我找不到有用的東西 – none

+1

一般來說,你會創建另一個類(例如'TestMagicSquare'),並使用註解來標記將調用測試的方法(例如'testValidSquare()'和' testInvalidSquare()'),編寫適當的方法,然後用JUnit系統調用它。如果您使用的是Eclipse或其他IDE,則運行測試的過程會稍微簡化一些。 – KevinO

回答

0

首先你創建你想測試的類。

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

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

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

然後您創建測試類。

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

終於看到了如何在命令行運行測試用例的答案this question