当前位置: 首页 > 知识库问答 >
问题:

@mock与@injectmocks之间的区别

越勇
2023-03-14

Mockito框架中的@mock@injectmocks有什么区别?

共有1个答案

皮承基
2023-03-14

@mock创建一个模拟。@injectmocks创建类的实例,并将使用@mock(或@spy)批注创建的模拟注入到此实例中。

注意必须使用@runwith(MockitoJunitRunner.class)mockito.initMocks(this)初始化这些模拟并注入它们(JUnit4)。

对于JUnit5,必须使用@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...

}
 类似资料:
  • 问题内容: 和框架有什么区别? 问题答案: 创建一个模拟。创建该类的实例,并将使用(或)注释创建的模拟注入该实例。 请注意,你必须使用或初始化这些模拟并注入它们。

  • 问题内容: 我目前正在研究Mockito框架,并且已经使用Mockito创建了一些测试用例。但后来我读到的不是调用模拟( SomeClass的 的.class)我可以使用和-我需要做的唯一一件事情就是我的注释测试类或使用的方法。 但这不起作用-似乎不会起作用!这是我的2个代码修订-一个使用注释,另一个不使用注释。 我究竟做错了什么? 正如我所说-这项工作很棒。但是以下内容不会: 这是课程: 我想念

  • 测试代码: 错误信息 当我将@injectmocks更改为@mock时,第二个测试是可以的,但第一个测试是错误的。我需要添加到一个stubbing 我不知道怎么做, injectmocks是否必要?

  • 问题内容: 因此,我了解到在Mockito中,@ InjectMocks将使用@Mock的注解注入所有可以注入的内容,但是如何处理这种情况呢? 假设MockObject2的属性类型为MockObject1,而SystemUnderTest的属性类型为MockObject2。我想将模拟对象1注入到模拟对象2中,并将模拟对象2注入到systemUnderTest中。 注释可以吗? 问题答案: 由于我在

  • C# 最吸引人的地方是它与 Java 的区别而不是它们之间的相似性。下面就来介绍一下 C# 与 Java 之间的区别: 序号 Java C# 1 Java 是 Oracle 开发的一种高级、健壮、安全和面向对象的编程语言 C# 是微软开发的在 .Net Framework 上运行的一种面向对象的编程语言 2 Java 语言需要在 Java 运行环境(JRE)下运行  C# 语言需要在公共语言运行库