Java Mockito失败的基本示例
我是mockito的新手,所以我试着用一些基本的例子来学习 这是我的服务Java Mockito失败的基本示例,java,testing,junit,mockito,Java,Testing,Junit,Mockito,我是mockito的新手,所以我试着用一些基本的例子来学习 这是我的服务 public class MyCoolServiceImpl implements MyCoolService{ public String getName() { return "String from service"; } } mycolservice只是一个接口 public interface MyCoolService { public String getNam
public class MyCoolServiceImpl implements MyCoolService{
public String getName() {
return "String from service";
}
}
mycolservice
只是一个接口
public interface MyCoolService {
public String getName();
}
我有一个简单的用例:
public class SomeUseCase {
private MyCoolService service = new MyCoolServiceImpl();
public String getNameFromService(){
return service.getName();
}
}
封存很复杂。因此,我编写了以下测试类:
public class SomeUseCaseTest {
@Mock
MyCoolService service;
SomeUseCase useCase = new SomeUseCase();
@Before
public void setUp(){
initMocks(this);
when(service.getName()).thenReturn("String from mockito");
}
@Test
public void getNameTest(){
String str = useCase.getNameFromService();
assertEquals("String from mockito", str);
}
}
因此,据我所知,str
应该包含“来自mockito的字符串”
,因为我告诉mockito在调用service.getName()
时返回该字符串,但是我的测试失败了,因为它返回了“来自服务的字符串”
我错过了什么?我是否误解了mockito的工作原理?您必须告诉
mockito
在何处注入创建的mock。在您的情况下,只需使用@InjectMocks
注释:
public class SomeUseCaseTest {
@Mock
MyCoolService service;
@InjectMocks
SomeUseCase useCase = new SomeUseCase();
....
}