Mockito 模拟对象突然抛出 NPE

2023-05-03Java开发问题
4

本文介绍了Mockito 模拟对象突然抛出 NPE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我有一个模拟:

 static MyGroovyBasedHttpClient createClient(){
    MyGroovyBasedHttpClient client = mock(MyGroovyBasedHttpClient.class);
    Answer<SimpleResponse> methodAnswer = createGenericAnswer();

    when(client.myMethod(anyString(), anyInt(),anyString())).thenAnswer(methodAnswer);
    return client;
}

我有方法调用

def response = client.myMethod(stringParam1, intParam2, stringParam3)

我在 client.myMethod 调用上得到了 NPE如果我这样做了

And I get NPE on client.myMethod invocation If i do

println client // mock for MyGroovyBasedHttpClient with hashcode

所以 100% 客户端已初始化且不为 NULL我什至对模拟组件不为空的断言提出了质疑.我也对静态 MyGroovyBasedHttpClient createClient() 吸烟烟雾检查模拟客户端确实返回了我的自定义答案

so 100% client is initialized and not NULL I even hace smoke assertions that mocked components are not null. Also I have smoke on static MyGroovyBasedHttpClient createClient() Smoke checks that mocked client does return my custom Answer

如何调试此类问题?

更新:看起来这是我的问题:https://code.google.com/p/mockito/issues/detail?id=303

UPD: Look like this is my problem: https://code.google.com/p/mockito/issues/detail?id=303

推荐答案

mockito和groovy有问题,需要额外的依赖或者只能mock接口.

There is a problem with mockito and groovy, you need additional dependency or you can mock only interfaces.

欲了解更多信息,请访问:https://github.com/cyrusinnovation/mockito-groovy-support

For more info visit : https://github.com/cyrusinnovation/mockito-groovy-support

关于 groovy 类的 mockito 问题的问题 303:https://code.google.com/p/mockito/issues/detail?id=303

Issue 303 about mockito problem with groovy classes : https://code.google.com/p/mockito/issues/detail?id=303

这篇关于Mockito 模拟对象突然抛出 NPE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13