如何将 @InjectMocks 用于另一个要模拟的 Class 的依赖项?
How To Use @InjectMocks For A Dependency For Another Class To Be Mocked?
假设我有一个 class :
public class Boy
{
@Inject
@Named("birthDay")
BirthDay bday;
}
我想模拟它,但问题是生日 class 本身使用了一个我也想模拟和控制的依赖项,我不能同时使用 @InjectMocks 和 @Mock class,你如何实现同样的目标?
为什么需要在 mock 中注入一些东西?
您需要有两个测试 classes 来测试 Boy
和 BirthDay
classes.
在这里你可以测试一个Boy
class
的逻辑
public class BoyTest{
@Mock
private BirthDay brithday;
@InjectMock
private Boy boy;
}
BirthDay
的逻辑应该有它自己的测试 class。
public class BirthDayTest {
@Mock
private Dependency dependency ;
@InjectMock
private BirthDay brithday;
}
所以,你应该假设你的模拟 returns 一些你需要的数据。并检查您的被测单元是否按给定数据的预期工作。
假设我有一个 class :
public class Boy
{
@Inject
@Named("birthDay")
BirthDay bday;
}
我想模拟它,但问题是生日 class 本身使用了一个我也想模拟和控制的依赖项,我不能同时使用 @InjectMocks 和 @Mock class,你如何实现同样的目标?
为什么需要在 mock 中注入一些东西?
您需要有两个测试 classes 来测试 Boy
和 BirthDay
classes.
在这里你可以测试一个Boy
class
public class BoyTest{
@Mock
private BirthDay brithday;
@InjectMock
private Boy boy;
}
BirthDay
的逻辑应该有它自己的测试 class。
public class BirthDayTest {
@Mock
private Dependency dependency ;
@InjectMock
private BirthDay brithday;
}
所以,你应该假设你的模拟 returns 一些你需要的数据。并检查您的被测单元是否按给定数据的预期工作。