说我有课:
public class Boy
{
@Inject
@Named("birthDay")
BirthDay bday;
}
我想嘲笑它,但问题是BirthDay类本身使用了我想要模拟和控制的依赖项,我不能在同一个类上同时使用@InjectMocks和@Mock,你怎么去实现同样的目标?
答案 0 :(得分:2)
为什么你需要在模拟中注入一些东西?
您需要有两个测试类来测试Boy
和BirthDay
类。
在这里你可以测试Boy
类
public class BoyTest{
@Mock
private BirthDay brithday;
@InjectMock
private Boy boy;
}
BirthDay
的逻辑应该拥有它自己的Test类。
public class BirthDayTest {
@Mock
private Dependency dependency ;
@InjectMock
private BirthDay brithday;
}
因此,您应该假设您的模拟返回您需要的一些数据。并检查您的受测试单元是否按预期的方式使用给定数据。