如何解决 Kotlin 中的 EasyMock anyString() NullPointerException?
How to solve EasyMock anyString() NullPointerException in Kotlin?
我正在使用 EasyMock
和 Kotlin
。它运作良好,但我遇到了一个情况,当我需要模拟第 3 方库调用时,我没有客观地 need/have 来验证第一个参数,所以我想使用这个结构:
EasyMock.expect(bucket.putObject(EasyMock.anyString(), message)).andReturn(PutObjectResult())
我收到 null
指针异常。
java.lang.NullPointerException: anyString() must not be null
之所以在EasyMock
下面有这个实现:
public static String anyString() {
return (String)anyObject();
}
public static <T> T anyObject(Class<T> clazz) {
reportMatcher(Any.ANY);
return null;
}
我查看了 中可能的解决方法,但这些对我都不起作用。
有没有办法克服 EasyMock
带来的不便,并且不会出现 NullPointer
异常?
我不是 Kotlin 专家。我的第一个想法是 bucket.putObject
实际上并没有被嘲笑。但这可能是因为 anyObject()
只是 returns null 而 Kotlin 中的 null 验证导致了这一点。
您可以创建自己的匹配器。
public static String anyString() {
EasyMock.reportMatcher(Any.ANY);
return "";
}
看看它是否有效。
我正在使用 EasyMock
和 Kotlin
。它运作良好,但我遇到了一个情况,当我需要模拟第 3 方库调用时,我没有客观地 need/have 来验证第一个参数,所以我想使用这个结构:
EasyMock.expect(bucket.putObject(EasyMock.anyString(), message)).andReturn(PutObjectResult())
我收到 null
指针异常。
java.lang.NullPointerException: anyString() must not be null
之所以在EasyMock
下面有这个实现:
public static String anyString() {
return (String)anyObject();
}
public static <T> T anyObject(Class<T> clazz) {
reportMatcher(Any.ANY);
return null;
}
我查看了
有没有办法克服 EasyMock
带来的不便,并且不会出现 NullPointer
异常?
我不是 Kotlin 专家。我的第一个想法是 bucket.putObject
实际上并没有被嘲笑。但这可能是因为 anyObject()
只是 returns null 而 Kotlin 中的 null 验证导致了这一点。
您可以创建自己的匹配器。
public static String anyString() {
EasyMock.reportMatcher(Any.ANY);
return "";
}
看看它是否有效。