我開始使用DrJava在Java中。我正在跟隨TDD進行學習。我創建了一個假設驗證某些數據和無效數據的方法,該方法假設拋出異常。如何測試DrJava中的異常?
它按預期拋出異常。但我不確定,如何編寫一個單元測試來預期異常。
在.net中我們有ExpectedException(typeof(exception))
。有人能指點我DrJava的等效物嗎?
感謝
我開始使用DrJava在Java中。我正在跟隨TDD進行學習。我創建了一個假設驗證某些數據和無效數據的方法,該方法假設拋出異常。如何測試DrJava中的異常?
它按預期拋出異常。但我不確定,如何編寫一個單元測試來預期異常。
在.net中我們有ExpectedException(typeof(exception))
。有人能指點我DrJava的等效物嗎?
感謝
如果您只是想測試某個特定異常類型是否在您的測試方法內某處引發,那麼已經顯示的@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
}
}
你需要使用DrJava –