我有以下類 在StackOverflow中有對此的回答,但它涉及列表throw checked Exceptions from mocks with Mockito。我喜歡研究這種情況。沒有得到我失蹤的地方。檢查的異常對此方法無效
public SimpleClass{
private SimpleClass(){}
public void runMethod(request,String,Map,Object,Object){
try{
doesSomething()....
}
}
catch(Exception e){
String message= ""+request.getAttribute(X)+"Some message"
Logger.Log(param1+param2+message);
}
}
我的測試方法如下所示。我試圖用JUnit運行覆蓋範圍,但沒有涉及Catch Block,因此請編寫下面的測試方法。它拋出下面的異常。無法找到我失蹤的地方。
public class SimpleClassTest{
@Test
public void testCatchBlock(){
SimpleClass instanceObj =PowerMockito.mock(SimpleClass.class);
Mockito.doThrow(new Exception()).when(instanceObj).runMethod(request, anyString(), anyMap(), anyObject(), anyObject());
}
}
拋出異常
org.mockito.exceptions.base.MockitoException:
Checked exception is invalid for this method!
Invalid: java.lang.Exception
編輯
我能夠運行給予NullPointerException異常的方法。當我嘗試使用Junit進行代碼覆蓋時,catch塊完全顯示爲紅色,並且catch字句顯示爲黃色。我如何實現100%的覆蓋率以及如何測試catch塊中的String消息。
我試圖做到這一點,但無法得到我想念的東西。 – Sawyer
@Sawyer代碼片段不完整,但我建議再看看你的存根。 – Brice
我無法實現Catch塊中字符串的覆蓋和測試。我怎麼做。 – Sawyer