gpt4 book ai didi

java - Mockito 可以使用参数构造函数初始化模拟对象吗?

转载 作者:行者123 更新时间:2023-12-01 21:08:40 27 4
gpt4 key购买 nike

当我将 @Mocked 注解放在一个只有带参数的构造函数的对象上时,该对象会正确启动吗?

最佳答案

When I put the @Mocked annotation on a object which has only constructor with parameters, will this object be initiated rightly?

没有。

将创建具有相同界面模拟。这意味着它将具有相同的 public 方法,并且如果测试类位于同一个包中,它也将具有相同的 protectedpackage private方法可访问。

此模拟将不会调用模拟类的真实方法(除非您如此配置)。

这意味着,对于预计由您的测试代码调用的每个方法(剪切)并且定义了返回值,您必须配置您的模拟,以便返回您的值cut 应在该特定测试中使用。

这种可配置的返回值和模拟的验证功能是我们使用模拟框架的原因。

<小时/>

注意

如果您想模拟对访问由模拟类构造函数初始化的成员的方法的调用,您必须使用以下形式

doReturn(SOME_VALUE).when(mock).methodToBeCalledByYourCut();

因为形式

 when(mock.methodToBeCalledByYourCut()).thenReturn(SOME_VALUE);

在这种特殊情况下将引发 NullPointerException

关于java - Mockito 可以使用参数构造函数初始化模拟对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41733199/

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