我尝试运行此测试:
@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);
...
}
但是我得到了NullPointer异常:
Mockito.when
我错过了什么?
如果使用Junit5,也会出现同样的问题,因为没有更多的“@RunBy”注释。
在这种情况下,你应该用以下注释你的类:
@ExtendWith(MockitoExtension.class)
public class MyTestClass {
...
您还应该导入到依赖项(Maven-pom.xml)中:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
激活@Mock
注释有三个选项:MockitoRule、MockitoJUnitRunner、MockitoAnnotations。(这个)。IMHO使用MockitoRule
是最好的,因为它仍然允许您选择另一个跑步者,例如参数化的
。
public class MockitoTest {
@Mock
private IRoutingObjHttpClient routingClientMock;
@Rule
public MockitoRule rule = MockitoJUnit.rule();
@Test
public void testSendRoutingRequest() throws Exception {
// ...
}
}
@RunWith(MockitoJUnitRunner.class)
public class MockitoTest {
@Mock
private IRoutingObjHttpClient routingClientMock;
@Test
public void testSendRoutingRequest() throws Exception {
// ...
}
}
这可以在qn@Before
方法中、在您自己的跑步者中或在自己的规则中完成。
public class MockitoTest {
@Mock
private IRoutingObjHttpClient routingClientMock;
@Before
public void createMocks() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testSendRoutingRequest() throws Exception {
// ...
}
}
当你想使用@Mock
注释时,你应该使用MockitoJUnitRunner
@RunWith(MockitoJUnitRunner.class)
public class MockitoTest {
@Mock
private IRoutingObjHttpClient routingClientMock;
@Test
public void testSendRoutingRequest() throws Exception {
// ...
}
}
另请参见本教程。
问题内容: 我尝试运行此测试: 但我得到NullPointerException为: 我想念什么? 问题答案: 当您要使用注释时,应使用 另请参阅本教程。
我试图使用Mockito框架和Junit5创建JUnit测试用例。我正在处理下面的代码: 我有一个像上面这样的类结构,我需要模仿第二种方法。 我试过@spy on FirstClass并嘲笑SecondClass和secondMethod,但嘲笑没有发生。在这种情况下我怎么能嘲笑呢? 注:我不能改变班级结构。
我正在用它来实现一个模拟来调用我的抽象类。 但我的问题是,我的抽象类有太多的依赖关系是自动连接的。子类是。如果它不是一个抽象类,我会使用@InjectMocks来注入这些模拟依赖项。而是如何将mock添加到我上面给出的实例中。 在此处简化代码版本/ 我的Junit是
所有东西看起来都是等级的,但看起来像是在两个领域注入了相同的对象或类似这样的东西。当我试图为一个字段使用When(..).thenreturn()时,它设置了两个数据,另一个数据和vise verse;最奇怪的是,它在调试模式下运行良好。你能说什么?
本文向大家介绍Spring实战之依赖关系注入之后的行为示例,包括了Spring实战之依赖关系注入之后的行为示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Spring实战之依赖关系注入之后的行为。分享给大家供大家参考,具体如下: 一 配置 二 接口 1 Axe 2 Person 三 Bean 1 Chinese 2 SteelAxe 四 测试类 五 测试结果 Spring实例化依赖be
我正在使用SpringRunner运行JUnit mockito测试用例,下面是类,我试图编写测试用例,但得到空对象 //Junit测试用例 但是下面的代码即使在模拟这个之后仍然返回空值,你能帮助如何模拟这个吗? 注意:只有Mockito需要使用无powermockito