我尝试运行这个测试:
@Mock IRoutingObjHttpClient routingClientMock;
@Mock IRoutingResponseRepository routingResponseRepositoryMock;
@Test
public void testSendRoutingRequest() throws Exception {
CompleteRoutingResponse completeRoutingResponse = new CompleteRoutingResponse();
completeRoutingResponse.regression_latencyMillis = 500L;
Mockito.when(routingClientMock.sendRoutingRequest(any(RoutingRequest.class))).thenReturn(completeRoutingResponse);
RoutingObjHttpClientWithReRun routingObjHttpClientWithReRun = new RoutingObjHttpClientWithReRun
(routingClientMock, routingResponseRepositoryMock);
...
}
但我得到 NullPointerException:
but I get NullPointerException for:
Mockito.when(routingClientMock.
我错过了什么?
当你想使用 @Mock 注解时你应该使用 MockitoJUnitRunner
When you want to use the @Mock annotation you should use the MockitoJUnitRunner
@RunWith(MockitoJUnitRunner.class)
public class MockitoTest {
@Mock
private IRoutingObjHttpClient routingClientMock;
@Test
public void testSendRoutingRequest() throws Exception {
// ...
}
}
另请参阅本教程.
这篇关于模拟实例在@Mock 注释后为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何模拟超级参考(在超级类上)?How to mock super reference (on super class)?(如何模拟超级参考(在超级类上)?)
Java 模拟数据库连接Java mock database connection(Java 模拟数据库连接)
Mockito ClassCastException - 无法投射模拟Mockito ClassCastException - A mock cannot be cast(Mockito ClassCastException - 无法投射模拟)
将值设置为模拟对象但获取 nullSet value to mocked object but get null(将值设置为模拟对象但获取 null)
如何模拟 DriverManager.getConnection(...)?How to mock DriverManager.getConnection(...)?(如何模拟 DriverManager.getConnection(...)?)
模拟;使用列表调用验证方法,忽略列表中元素的Mockito; verify method was called with list, ignore order of elements in list(模拟;使用列表调用验证方法,忽略列表中元素的顺序)