假设我们有以下测试代码:
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
public class NullTest {
@Test
public void testNull() {
doNothing(null);
}
private @NotNull String doNothing(@NotNull String value) {
return value;
}
}当直接运行gradle test或IDEA将操作委托给gradle时,测试将通过。但如果它使用IDEA运行器(没有委托给gradle)运行,它将失败并出现IllegalArgumentException: Argument for @NotNull parameter 'value' must not be null异常。
问题是:如何通过使用gradle运行它的测试?
发布于 2018-02-08 18:08:59
我找到的最简单的解决方案是应用org.jetbrains.intellij插件。因为除了其他事情之外,这个插件“将编译任务打补丁到带有可空性断言的工具代码中”。
apply plugin: 'org.jetbrains.intellij'
intellij {
instrumentCode = true
downloadSources = false
}发布于 2019-05-02 23:03:16
尝试将以下内容添加到您的依赖项中。这对我很有效。
compile 'org.jetbrains:annotations:13.0'发布于 2018-01-30 19:40:17
使用此代码-不可能,因为您使用的是org.jetbrains.annotation.*中的注释,这些注释仅在intellij idea测试运行程序中使用。对于gradle,注释@NotNull (或@Nullable)没有说明任何问题。Maven也看不到这个注解。我建议您使用Objects.requireNonNull(T )进行null检查。
https://stackoverflow.com/questions/48517104
复制相似问题