我需要模拟模拟对象的实例。我尝试了,但是作为null的对象。
基本上,我需要尝试尽可能多地调用真实的实现,第二层的模拟不会发生。
任何想法,如何做。
public class mytest{
@Mock
Myutil myutil;
@InjectMock
ClassunderTest ct
@Before
setup()
{
MockitoAnotation.initMocks(ct);
}
@Test
test1(){
when(myutil.dotask()).thenReturn("");
ct.m1();
}
}
public class ClassunderTest{
@inject
MyUtil u1;
public string m1(){
u1.dotask();
}
}
public class MyUtil(){
@inject
mockunderMock needtomock; //this instance needs to be mocked
public dotask(){
needtomock.play()
}
}
模拟不是一个真实对象,因此它没有needtomock
字段。您可能想在此处使用编程行为(Mockito.when()
等)或使用模拟mockundertest
MyUtil
实例一些阅读:https://github.com/mockito/mockito/wiki/faq