我想使用 Junit 和 Mockito 编写单元测试,在这种情况下我不想编写集成测试。我要测试的方法使用通过 Spring 使用 @Value 或 @Autowired 注释注入(inject)的变量。我如何填充注入(inject)的变量,以便在我运行测试时它们不为空。在注释出现之前,我会创建变量的模拟类并通过 setter 方法设置它们。
我正在编写单元测试,所以我不想使用 @RunWith(SpringJUnit4ClassRunner.class)
。
最佳答案
您可以使用MockitoJUnitRunner
。
class SystemUnderTest {
@Autowired
private Dependency dep;
// ...
}
@RunWith(MockitoJUnitRunner.class)
public class YourTest {
@Mock
private Dependency mockDependency;
@InjectMocks
private SystemUnderTest testee;
@Test
public void testSystem() {
// at this point testee is already injected with mockDependency
}
}
关于java - 使用@Autowired 注释测试注入(inject) bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17000217/