7

文字列配列をさまざまな方法で並べ替える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が見つからないようですが、何が間違っているのでしょうか。

4

3 に答える 3

13

xクラスのメンバー変数を作成する必要がありますSortingTest

public class SortingTest {  

    private String[] x; 

    @Before
    public void init() {
      x = new String {"Ludo", "Chesstitans", "Palle", "Monkey"};
    }
}
于 2012-09-18T08:10:51.057 に答える
2

setUp他のメソッドがアクセスできるように、一部のフィールドメンバーを初期化する必要があります。ローカル変数を初期化すると、setUp変数を終了するときに失われます。

この場合、良いものには2つのメンバーがあります。

  • originalArray
  • sortedArray

各テストメソッドで、originalArrayを並べ替えて、結果をすでにsortedArrayと比較できます。

于 2012-09-18T08:10:51.903 に答える
0

xすべてのメソッドで表示されるように、クラスのメンバーを作成する必要があります。

于 2013-08-06T08:57:11.397 に答える