私はXalanの使用のためにWeekConverterをテストしています。私のテストが正確に何をしているのか疑問に思っています。 :D以下の試験方法持つ例外予想(複数のアサート)を伴うJUnitテスト
:
@Test(expected = IllegalArgumentException.class)
public void testConvertTwoDigitYearWithWrongInput() {
WeekConverter weekConverter = new WeekConverter(WeekConverter.Strategy.TWO_DIGIT_YEAR);
//wrong or empty inputs
assertEquals("0", weekConverter.convert(""));
assertEquals("0", weekConverter.convert("abcdefgh"));
}
このテストは、すべての例外を主張する、または最初のassertのために期待していますか?最初のものだけであれば、どちらの場合でも同じ例外が予想されますが、各アサートのテストメソッドを作成する必要があります。誰かが私の例をここで確認できますか?
私もNullPointerExceptionがを得ヌルためのテストを、持っています。 2アサートとはIllegalArgumentExceptionを期待
if (inputDate == null) {
do something and throw NullPointerexception
} else if (inputDate.isEmpty()) {
do something and throw IllegalArgumentException, since inputDate is not really null
} else if (inputDate.matches(regex)) {
go futher and convert
} else {
do something and throw IllegalArgumentException, since inputDate does not match regex
}
したがって一つの試験方法:ソフト検証は以下です。しかし、JUnitの機能性を尊重するだけでなく、2つの異なる州からのスローを期待するという2つの異なるテスト方法が必要であることは明らかです。
あなたは例外を期待しているので、あなたはアサートが等しくなる必要はありません - あなたが必要とするすべては、変換するための呼び出しです。 – avandeursen