@Mock 和 @InjectMocks 之间的区别

新手上路,请多包涵

Mockito框架中 @Mock@InjectMocks 有什么区别?

原文由 user2249972 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 861
1 个回答

@Mock 创建一个模拟。 @InjectMocks 创建类的一个实例,并将使用 @Mock (或 @Spy )注释创建的模拟注入到这个实例中–

请注意,您必须使用 @RunWith(MockitoJUnitRunner.class)Mockito.initMocks(this) 来初始化这些模拟并注入它们 (JUnit 4)。

对于 JUnit 5,您必须使用 @ExtendWith(MockitoExtension.class)

 @RunWith(MockitoJUnitRunner.class) // JUnit 4
// @ExtendWith(MockitoExtension.class) for JUnit 5
public class SomeManagerTest {

    @InjectMocks
    private SomeManager someManager;

    @Mock
    private SomeDependency someDependency; // this will be injected into someManager

     // tests...

}

原文由 Tom Verelst 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题