私の知識は、例外のテストは、「空」、「ヌル」にJUnitテストを実行し、例外テスト - JUnitの4
public Profile(List<Grade> g) {
throw new IllegalArgumentException();
}
を「失敗」には、このコードのために良いものを知りたいために、私は、JUnitのを学ぶ学生です
私の知識は、例外のテストは、「空」、「ヌル」にJUnitテストを実行し、例外テスト - JUnitの4
public Profile(List<Grade> g) {
throw new IllegalArgumentException();
}
を「失敗」には、このコードのために良いものを知りたいために、私は、JUnitのを学ぶ学生です
あなたはJUnitの4で例外をスローするメソッドをテストするための明確な、最も柔軟な方法はExpectedException
ルールを使用することである
@Test(expected = IllegalArgumentException.class)
public void profileTest() {
//your logic
}
あなたは私を助けることができる "リスト"のための任意のリソースですか?私はarraylistのためのリソースを持っています(例えば、新しいArraylist
あなたがしたいことは分かりません。あなたの目標を説明してください。 –
そうJunitテストでは、@Test(expected = illegalArugmentException.class)public void EmptyTest(){そのプロファイルメソッドを使用して空またはnullをコールするか失敗するArugment} – ZoroLost
ような例外のテスト何かのために使用することができます。あなたのテストクラスの最上部には:
@Rule
public ExpectedException thrown = ExpectedException.none();
これは、各テストの前にthrown
を設定します例外を期待していないために、例外がスローされたかどうかを確認するために、各テストの後にそれを呼び出します。個々のテストで
:例外が期待に一致するスローされたとき
@Test
public void applyDiscount_throws_exception_when_customer_is_non_member() {
Order order = new Order(newNonMemberCustomer());
thrown.expect(DiscountEligibilityException.class);
thrown.expectMessage("Cannot apply discount to non-member");
order.applyDiscount(DISCOUNT_CODE);
}
これは通過します。例外がスローされない場合、またはスローされた例外が期待通りでない場合は、その理由の有用な説明とともに失敗します。
前ExpectedException
に、簡単だった@Test(expected = ExceptionType.class)
フォームは、視覚的に欠場することがあった、とあなたが行うことができますどのくらいの検証に制限されています。
あり日曜大工方法もある:
@Test
public void applyDiscount_throws_exception_when_customer_is_non_member() {
Order order = new Order(newNonMemberCustomer());
try {
order.applyDiscount(DISCOUNT_CODE);
fail("Expected an exception");
} catch(DiscountEligibilityException e) {
assertThat(e.getMessage(), is("Cannot apply discount to non-member");
}
}
は...しかしExpectedException
は簡単に、より明確に、より標準的な、そして強力です。
このapiを見てください:http://joel-costigliola.github.io/assertj/ –