假设我有一个类:
public class Boy
{
@Inject
@Named("birthDay")
BirthDay bday;
}
我想模拟它,但问题是 BirthDay 类本身使用了一个我也想模拟和控制的依赖项,我不能在同一个类上同时使用 @InjectMocks 和 @Mock,你该怎么做达到同样的效果?
最佳答案
为什么需要在模拟中注入(inject)一些东西?
您需要有两个测试类来测试 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;
}
因此,您应该假设您的模拟返回了您需要的一些数据。并检查您的被测单元是否按照给定数据的预期工作。
关于java - 如何使用 @InjectMocks 作为另一个要模拟的类的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39888363/