![](/img/trans.png)
[英]AssertJ: How to return the actual exception when using method assertThatThrownBy
[英]How to verify that static method throws an exception using AssertJ?
當我嘗試測試此方法時
static void validatePostcode(final String postcode, final String addressLine)
{
if(! hasValidPostcode(postcode, addressLine)) {
throw new InvalidFieldException("Postcode is null or empty ");
}
}
使用以下測試
@Test
public void testThrowsAnException()
{
assertThatThrownBy(validatePostcode("", "")).isInstanceOf(InvalidFieldException.class);
}
我在IntelliJ中收到此錯誤消息
斷言中的assertThatThrownBy(org.assertj.core.api.ThrowableAssert.ThrowingCallable)不能應用於(void)
與assertThatExceptionOfType
相同。
是否有可能使用AssertJ測試靜態方法實際上拋出未經檢查的異常? 我的考試應該改變什么?
正如編譯錯誤所表明的那樣,該方法期望拋出throwable。
@Test
public void testThrowsAnException()
{
assertThatThrownBy(() -> validatePostcode("", "")).isInstanceOf(InvalidFieldException.class);
}
改為這種方式。 您需要通過lambda來使用assertj進行測試
assertThatThrownBy(()->validatePostcode("","")).isInstanceOf(InvalidFieldException.class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.