2016-04-01 24 views
0

TestNGで書かれた詳細なシナリオがある回帰テスト(単体テストではない)の場合、Assertチェックを行うべき場所は適切ですか?テストケースや呼び出しメソッドに問題があるかどうかたとえば:テストケースまたは検証方法にアサートする必要がありますか?

このテストケースは、インクルードがアサート含ま検証メソッドを呼び出します。

@Test 
public void test1() { 
    validateResponse(); 
} 

public void validateResponse() { 
    Assert.assertEquals(a, "123"); 
    Assert.assertEquals(b, "455"); 
    Assert.assertEquals(c, "5678"); 
    Assert.assertEquals(d, "3333"); 
} 

このテストケースがアサート検証メソッドの戻り値に基づいて:

@Test 
public void test1() { 
    Assert.assertTrue(validateResponse()); 
} 

public boolean void validateResponse() throws Exception { 
    try { 
     if (!a.equals("123")) throw new Exception(); 
     if (!b.equals("455")) throw new Exception(); 
     if (!c.equals("5678")) throw new Exception(); 
     if (!d.equals("3333")) throw new Exception(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return false; 
    } 
    return true; 
} 

答えて

2

あなたのアサートがなければなりません開発者が問題をすばやく特定できるように、できるだけ具体的できめ細かく記述してください。例えば

@Test 
public void testResponseFields(){ 
    // create response to be tested 

    // JUnit style 
    Assert.assertEquals("Response 'alpha' should be '123'", 123, response.getAlpha()); 

    // TestNG style 
    Assert.assertEquals(response.getAlpha(), 123, "Response 'alpha' should be '123'"); 
} 

あなたはAssert.assertXXコールに失敗メッセージを設定したら、それはあなたが見るために、問題を説明するメッセージとスタックトレースを持つことになりますようアサートが呼び出された場所にとして議論の余地がポイントの、よりなり、それが失敗したとき。

関連する問題