SetUp,初始化Junit测试

时间:2012-09-18 08:08:27

标签: java unit-testing testing junit

我正在尝试测试我的3个类,它们以不同的方式对字符串数组进行排序!

我知道有一种方法可以初始化一个数组,然后在我的每个测试中使用它们。

到目前为止,这是我的代码:

public class SortingTest {

    public insertionSort is = new insertionSort();
    public bubbleSort bs = new bubbleSort();
    @Test
    public void testBubbleSort() {
        String [] sortedArray ={"Chesstitans", "Ludo", "Monkey", "Palle"};
        bs.sort(sortedArray);
        assertArrayEquals(sortedArray, x);
    }
    @Test
    public void testInsertionSort() {


    }
    @Test
    public void testMergeSort() {


    }
    @Test
    public void testSelectionSort() {


    }
    @Before
    protected void setUp() throws Exception{
        String[]x ={"Ludo", "Chesstitans", "Palle", "Monkey"};
    }
}

虽然我已经尝试了setUp和initialize方法但它似乎没有找到x我做错了什么?

3 个答案:

答案 0 :(得分:11)

您需要将x作为类SortingTest

的成员变量
public class SortingTest {  

    private String[] x; 

    @Before
    public void init() {
      x = new String {"Ludo", "Chesstitans", "Palle", "Monkey"};
    }
}

答案 1 :(得分:2)

setUp应该初始化一些字段成员,以便其他方法可以访问它。如果初始化局部变量,则在退出setUp变量时它将丢失。

在这种情况下,好事会有两个成员:

  • originalArray
  • sortedArray

在每个测试方法中,您可以对originalArray进行排序,并将结果与​​已排序的Array进行比较。

答案 2 :(得分:0)

你需要让x成为一个类的成员,以便它在所有方法中都可见。