当我使用Mockito和Junit编写测试用例时,我将@InjectMocks用于要测试的类。在项目的其他部分,我还看到@Autowired用于要测试的类。

什么时候可以使用@InjectMocks@Autowired?当我们尝试将它们与要测试的类一起使用时,两者之间有什么区别?

最佳答案

@InjectMocks是一种Mockito机制,用于将测试类中的声明字段注入(inject)到测试下的类中的匹配字段中。它不需要被测类是Spring组件。
@Autowired是Spring的注释,用于将Bean Autowiring 到生产的非测试类中。

如果您想在被测类中利用@Autowired批注,另一种方法是使用springockito,它允许您声明模拟 bean ,以便将它们像Spring Autowiring 该 bean 一样自动连接到被测类中。但这通常不是必需的。

关于java - Mockito中的@injectMocks和@Autowired用法之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25893247/

10-10 17:39