如何解决如何在 Kotlin 中解决 EasyMock anyString() NullPointerException?
我将 new_l=[]
def flatten(lists):
for i in lists:
if isinstance(i,list):
flatten(i)
else:
new_l.append(i)
return new_l
list2d = [1,2,[3,4],5,[6,7,[8,9,10]]]
print(flatten(list2d))
与 EasyMock
一起使用。它运行良好,但是当我需要模拟 3rd 方库调用并且我客观上不需要/必须验证第一个参数时,我遇到了一个案例,所以我想使用这种结构:
Kotlin
我收到 EasyMock.expect(bucket.putObject(EasyMock.anyString(),message)).andReturn(PutObjectResult())
指针异常。
java.lang.NullPointerException: anyString() 不能为 null
在 null
下面有这个实现的原因:
EasyMock
我查看了 Mockito 中可能的解决方法,但对我来说没有任何效果。
有没有办法克服 public static String anyString() {
return (String)anyObject();
}
public static <T> T anyObject(Class<T> clazz) {
reportMatcher(Any.ANY);
return null;
}
带来的不便,并且不会收到 EasyMock
异常?
解决方法
我不是 Kotlin 专家。我的第一个想法是 bucket.putObject
实际上并没有被嘲笑。但这可能是因为 anyObject()
只返回 null 而 Kotlin 中的 null 验证导致了这一点。
您可以创建自己的匹配器。
public static String anyString() {
EasyMock.reportMatcher(Any.ANY);
return "";
}
看看它是否有效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。