gpt4 book ai didi

java - Mockito:@Mock 对象何时初始化以及它调用哪个构造函数

转载 作者:行者123 更新时间:2023-12-01 22:21:59 28 4
gpt4 key购买 nike

我试图弄清楚 mockito 是如何在背后工作的,以便进行调试。我想知道带有@Mock注解的对象,它是什么时候初始化的?比如,在@Before 之前或@Before 之后?

如果有多个不同的构造函数,mockito 如何确定调用哪些构造函数?

如果我改用 jmockit @Mocked,上述问题是否有不同的答案?

谢谢!

最佳答案

Mock 使用 Mockito 创建的对象不调用任何构造函数或静态初始化程序。 (这是通过旧版本的 Mockito 中的 Objenesis 和新版本中的 ByteBuddy 实现的。)因此,所有字段都未初始化,并且构造函数中根本没有副作用,包括您可能看到的任何异常抛出。

相比之下, spy 对象 do have their constructors called .如果您不初始化该字段,Mockito 将默认调用无参数构造函数(公共(public)或私有(private)),您可以在初始化器中调用您选择的构造函数。

@Mock 注释初始化的顺序取决于您使用哪种技术来初始化模拟:

关于java - Mockito:@Mock 对象何时初始化以及它调用哪个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39376471/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com