2016-08-28 11 views
-2

を逆にこの文字列をparametized JUnitテストを使用するには:私は@RunWith(JUnitParamsRunner.class)を使用することができることをどこかで読ん私は私の文字列の逆の方法をテストするためにそれを使用する方法が分からないどのようにコード

は、ここに私ですクラス:

public class StringReverse { 

    public static String reverse(String s){ 
     List<String> tempArray = new ArrayList<String>(s.length()); 
     for(int i = 0; i <s.length(); i++){ 
      tempArray.add(s.substring(i, i+1)); 
     } 
     StringBuilder reverseString = new StringBuilder(s.length()); 
     for(int i = tempArray.size() - 1; i >=0; i--){ 
      reverseString.append(tempArray.get(i)); 
     } 
     return reverseString.toString(); 
    } 

} 

ここに私のテストクラスがあります:

public class StringReverTest { 

    @Test 
    public void test() { 
     StringReverse s = new StringReverse(); 
     assertEquals("cba", s.reverse("abc")); 
     assertEquals("", s.reverse("")); 
     assertNotEquals("abc", s.reverse("abc")); 

    } 
    @Test(expected = NullPointerException.class) 
    public void testThrowNPE(){ 
     StringReverse s = new StringReverse(); 
     s.reverse(null); 
     throw new NullPointerException(); 
    } 

} 

誰かが私はparametizedテストを使用して、上記試験でください方法を正確に表示することができますしてください?

おかげ

+0

パラメータ化されたものは何ですか? –

+0

お返事ありがとうございます@OliverCharlesworth私は正直でも確実ではありません、私はパラメータテストを使用する方法がわからないので、上のクラスを使用して例を提供することができればそれは素晴らしいでしょう。 –

+0

これはスタックオーバーフローのための合理的な質問ではありません - "このことを手伝ってください、なぜ私はそれが欲しいのかわかりません" ... –

答えて

2

あなたは、このいずれかであなたの最初のテストを置き換えることができます:

@Test(expected = NullPointerException.class) 
public void testThrowNPE(){ 
    StringReverse s = new StringReverse(); 
    s.reverse(null); 
} 

予想される注釈がいることを確認します:

@Test 
@Parameters(method = "reverseValues") 
public void reverseString(String input, String output) { 
    StringReverse s = new StringReverse(); 
    assertEquals(output, s.reverse(input)); 
} 

private Object[] reverseValues() { 
    return new Object[]{ 
      new Object[]{"abc", "cba"}, 
      new Object[]{"", ""} 
     }; 
} 

は、第二の試験はthrow new NullPointerException()ラインを必要としません。 s.reverse(null)NullPointerExceptionをスローします。

+0

ありがとう@Julietaはこれがparametisedテストの意味ですか?基本的にこのメソッドはいくつかのパラメータを取りますか? –

+0

はい、そういう意味です。パラメータのリストを作成し、それらの間で繰り返します。これは、異なる条件で同じコードをテストする場合に便利です:) – Julieta

関連する問題