Java 是否可以初始化模拟对象中的某些字段
我有一个测试无法正确覆盖的代码。 我正在使用Mockito图书馆。 在开始考试的那一刻,我遇到了困难 以下是测试代码:Java 是否可以初始化模拟对象中的某些字段,java,android,testing,junit,mockito,Java,Android,Testing,Junit,Mockito,我有一个测试无法正确覆盖的代码。 我正在使用Mockito图书馆。 在开始考试的那一刻,我遇到了困难 以下是测试代码: @Test public void testLoadCar() { when(remoteService.loadData()).thenReturn(new DataResult<DataCar>("", "", new DataCar())); when(dataResult.hasError()).the
@Test
public void testLoadCar() {
when(remoteService.loadData()).thenReturn(new DataResult<DataCar>("", "", new DataCar()));
when(dataResult.hasError()).thenReturn(true);
when(dataResult.response.hasHeaders()).thenReturn(true);
requestNetwork = new RequestNetwork(remoteService);
Response<DataCar> response = requestNetwork.load(request);
}
我想知道这样的录音是否有效。
如果它不起作用,那么我们如何处理这一时刻:
protected Response createResponse(DataResult<T> dataResult) {
if (dataResult.hasError() || !dataResult.response.hasHeaders()) {
return dataResult.getErrorMessage());
} else {
return Response.data(dataResult.value);
}
}
然后用!DataResult.response.hasHeaders()我有一个问题。因为我不知道如何替换我需要的值。不是所有与测试对象交互的对象都需要模拟。 记住,您也可以使用POJO
DataResult
看起来是POJO的完美人选。
如果可以创建具有所需状态和行为的POJO,那么使用模拟对象将一无所获
查看发布的代码,似乎很容易创建:
new DataResult<DataCar>("", "", new DataCar())
谢谢你的帮助!
when (dataResult.hasError ()). thenReturn (true);
new DataResult<DataCar>("", "", new DataCar())