Java 从服务类调用函数时,Mockito中的ResponseEntity始终为null

Java 从服务类调用函数时,Mockito中的ResponseEntity始终为null,java,spring-boot,mockito,Java,Spring Boot,Mockito,我已经创建了一个服务类 @服务 公共类SomeServiceImpl实现SomeService{ @凌驾 公共响应getMethod(){ EntityClass实体=新EntityClass(); //操作实体的一些操作 返回新的响应属性(“实体”,HttpStatus.OK); } } 我正在尝试使用Mockito在测试类中获取对象: @AutoConfigureMockMvc @RunWith(MockitoJUnitRunner.class) @Slf4j 公共类服务测试{ @嘲弄 一

我已经创建了一个服务类

@服务
公共类SomeServiceImpl实现SomeService{
@凌驾
公共响应getMethod(){
EntityClass实体=新EntityClass();
//操作实体的一些操作
返回新的响应属性(“实体”,HttpStatus.OK);
}
}
我正在尝试使用Mockito在测试类中获取对象:

@AutoConfigureMockMvc
@RunWith(MockitoJUnitRunner.class)
@Slf4j
公共类服务测试{
@嘲弄
一些服务一些服务;
@试验
public void getMethodSomeService(){
ResponseEntity ResponseEntity=someService.getMethod();
log.debug(“{}”,responseEntity);
}
}
但是,
responseEntity
始终为
null
。我做错了什么?我错过什么了吗?为什么我得到的值总是空的?

通过写入

@Mock
SomeService someService;
您已经创建了一个mock,对该mock的所有方法调用都将返回null,除非您告诉它以其他方式处理类似的内容

when(someService.someMethod(any())).thenReturn("something");
因此,
someService.getMethod()
将始终返回null。
您可能希望不使用mock在这种情况下,mock通常用于防止调用不属于单元测试的其他对象。

mock意味着用您可以从外部操作的东西替换具体的实现。如果要测试
someserviceinpl
,只需创建一个新实例即可

SomeService=newsomeserviceimpl();
然后可以测试这个实例


如果您的
SomeService
与另一个服务有依赖关系,您可能需要模拟此依赖关系以控制其行为

@Mock
其他服务依赖;
SomeService SomeService=新的SomeServiceImpl(依赖项);

您是否错过了
新的
之前的
一些服务impl
?是的,我的错。目前我不使用Java,因此我不再习惯这种语法。我更正了。你应该接受一个答案或添加关于进一步问题的信息。@Jeppz没有一个答案对我有用。我放弃了这种方法,采用了一种新的方法。我通常让其他用户的投票决定答案的适用性。在一天结束时,堆栈交换网络上或任何地方的问答不仅仅针对提问者。在这种情况下,答案可能对我不起作用,但对其他用户/未来的访问者起作用。因为我相信问题已经很清楚了,我放弃了这种方法,所以没有什么可以补充的。添加“我放弃了这种方法”作为回答或编辑不会产生任何有用的结果。即使是这样的答案也是非常低质量的答案。另外,我认为接受一个答案意味着“这个答案对我有用”,并且是完全可选的。因此,从我的角度来看,我认为无需采取进一步行动,