我正在尝试编写Mockito
测试用例来获取plantIDs
并执行一些处理。 我也加了测试用例。使用Mockito嘲笑
这是我的测试案例
@RunWith(MockitoJUnitRunner.class)
public class PlantDetailsServiceTest {
@InjectMocks PlantDetailsService service;
@Mock PlantDetailsHelper helperMock;
@Mock HttpURLConnection conn;
@Mock BufferedReader buf;
@Mock InputStream input;
@Mock InputStreamReader ir;
@Mock JSONObject json;
@Mock JSONArray arr;
@Mock List<String> plantResult;
@Test
public void TestGetPlantDetails() throws Exception
{
String plantID1= "23";
List<String> plantResult = new ArrayList<String>();
plantResult.add(plantID1);
Mockito.when(helperMock.getPlantIds()).thenReturn(plantResult);
URL url = new URL("**********/23");
conn=(HttpURLConnection)url.openConnection();
Mockito.when((HttpURLConnection)url.openConnection()).thenReturn(conn);
Mockito.when(conn.getResponseCode()).thenReturn(200);
input=conn.getInputStream();
Mockito.when(conn.getInputStream()).thenReturn(input);
ir=new InputStreamReader(input);
Mockito.when(new InputStreamReader((conn.getInputStream()))).thenReturn(ir);
buf=new BufferedReader(ir);
Mockito.when(new BufferedReader(new InputStreamReader((conn.getInputStream())))).thenReturn(buf);
String output=buf.readLine();
Mockito.when(buf.readLine()).thenReturn(output);
json=new JSONObject(output);
Mockito.when(new JSONObject(output)).thenReturn(json);
arr=json.getJSONArray("Data");
Mockito.when(json.getJSONArray("Data")).thenReturn(arr);
assertThat(output,is(notNullValue()));
List<PlantDetailsDTO> plantDetailsList=new ArrayList<PlantDetailsDTO>();
plantDetailsList=service.getPlantDetails();
}
}
这将引发一个错误在我读线InputStream()
。我无法打开连接,因为URL可能是最后一类。我也在openConnection()
行中出错。缺少方法调用。
当你得到错误时,你的'helperMock'对象是否为null? –
空指针异常在com.test.PlantDetailsServiceTest.TestGetPlantDetails(PlantDetailsServiceTest.java:57) – Rindha