2012-09-18 11 views
6

こんにちはそこに、私はさまざまな方法で文字列配列をソートしている私の3つのクラスをテストしようとしています!セットアップ、initilize JUnitテスト

私は配列をintilize、その後、私のテストのすべての単一でそれらを使用する方法があることを知っています。

は、これまでのところ、これは私のコードです:

私は私が間違ってやっているのx見つけるように見えるdoes notの両方のセットアップとinitilize方法を試してみましたが、本家の
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"}; 
    } 

} 

敬具あなたは他の方法は、それへのアクセス権を持っているので、xクラスのメンバ変数SortingTest

public class SortingTest { 

    private String[] x; 

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

答えて

8

。ローカル変数を初期化すると、setUp変数を終了すると失われます。あなたがoriginalArrayをソートし、あなたすでにsortedArrayに対する結果を比較することができ、それぞれの試験方法では

  • originalArray
  • sortedArray

この場合、良いことは、二つの部材を持っているでしょう。

+0

私はpublic変数としてinitilizeする必要がありますか?メソッドの全体的な点を壊すことはありませんか? –

+0

私はそれが好きで、最初にx配列をソートします。配列が既にソートされているので、私の他のテストは役に立たないでしょうか? –

+0

あなたのコードに1つの修正がありましたが、それ以外は完璧でした! :D X =新しいString [] { "ルード"、 "Chesstitans"、 "Palle"、 "サル"}。 –

2

setUpがいくつかフィールドメンバーを初期化する必要があるようにする必要があり

マルク・ラスムッセン

+0

これは私が欲しいものですが、私は個々のソート方法でそれをしなければなりませんか?それは新しいメソッドを使用するたびにinitilizeする方法はありませんか? –

+0

私が悪いことを覚えていないなら、それはそうです。 setUpメソッドが実行される前に呼び出されます(各テストメソッドでテストオブジェクトが再度作成されるかどうかはわかりません)。したがって、setUpで初期化して自由に使用してください。 – helios

+0

実際、@ munyengmは正しいです、あなたはsetUpメソッドを必要とせずにメンバ宣言に直接値を割り当てることができます。 – helios

0

あなたはそれがすべてのメソッドに見えますように、xクラスのメンバーを作成する必要があります。