1

DrJavaを使用してJavaを始めています。私は学習のためにTDDに従っています。一部のデータを検証すると思われるメソッドを作成しましたが、無効なデータでは、メソッドは例外をスローすると想定されています。

予想どおり例外をスローしています。しかし、例外を期待する単体テストを作成する方法がわかりません。

.net にはExpectedException(typeof(exception)). DrJavaで同等のものを教えてもらえますか?

ありがとう

4

2 に答える 2

2

JUnitを使用している場合は、次のことができます

@Test(expected = ExpectedException.class)
public void testMethod() {
   ...
}

詳細については、APIを参照してください。

于 2013-08-30T18:55:02.447 に答える
0

特定の例外タイプがテスト メソッド内のどこかでスローされたという事実を単にテストしたい場合は、既に示されているもので@Test(expected = MyExpectedException.class)問題ありません。

例外のより高度なテストでは、 を使用して@Rule、例外がスローされると予想される場所をさらに絞り込んだり、スローされた例外オブジェクトに関するテストを追加したりできます (つまり、メッセージ文字列が予期される値に等しいか、次の値を含む)。いくつかの期待値:

class MyTest {

   @Rule ExpectedException expected = ExpectedException.none();
   // above says that for the majority of tests, you *don't* expect an exception

   @Test
   public testSomeMethod() {
   myInstance.doSomePreparationStuff();
   ...
   // all exceptions thrown up to this point will cause the test to fail

   expected.expect(MyExpectedClass.class);
   // above changes the expectation from default of no-exception to the provided exception

   expected.expectMessage("some expected value as substring of the exception's message");
   // furthermore, the message must contain the provided text

   myInstance.doMethodThatThrowsException();
   // if test exits without meeting the above expectations, then the test will fail with the appropriate message
   }

}
于 2013-08-30T20:18:06.180 に答える