我有一个springboot Rest应用程序,其中一个服务必须调用另一个服务方法。原因是在系统中创建员工时,必须为该员工创建默认角色和组。该流程是对员工控制器的REST调用 - > createEmp服务 - >这个内容叫做createrole服务&创建组服务。功能正常。问题在于Junits。当我尝试在createEmp服务中模拟creategroup和createrole调用时,正在调用实际方法。
IEmpGroupService empGroupService;
IEmpRoleService empRoleService;
createEmp {
//logic goes here
emprepo.save();
empgroupservice.createDefaultgroup();
empRoleservice.createDefaultRole();
}
请问这里有什么指示?
答案 0 :(得分:0)
由于您正在为createEmp
服务撰写 单元测试 ,因此您不应该关心empgroupservice
和{{1}在他们内部做,即你应该在junit测试中嘲笑他们。
你可以在你的junit类中在类级别(使用empRoleservice
)注入它们:
@Mock
请记住....
@Mock
empgroupservice mockedEmpgroupservice;
@Mock
empRoleservice mockedEmpRoleservice;
...
public void testCreateEmp(){
...
Mockito.doNothing().when(mockedEmpgroupservice).createDefaultgroup();
Mockito.doNothing().when(empRoleservice).createDefaultRole();
...
// invoke your method under test
...
Mockito.verify(mockedEmpgroupservice).createDefaultgroup(customer);
Mockito.verify(empRoleservice).createDefaultRole();
}
...
他们的调用作为您测试的一些期望。
PS。我还建议您遵循类名的命名约定。例如。 verify
应为empGroupService
。