我们的项目启用了静态分析,而在进行测试时,我们开始担心是否应该测试NULL检查或静态分析可能已经测试过的任何东西。
我还应该测试那些东西吗?
例如。方法:
@RegEx("bla.*bla")
public static String bar(@Nonnull Foo par1)
我们是否应该对此进行测试:
assertTrue(Pattern.matches(XXX.bar(someFoo)));
然后测试是否传入了NPE引发的NPE?
编辑:我们正在使用Findbugs,但我认为该问题也适用于其他静态代码分析工具。
最佳答案
静态分析器将帮助您找到可能触发NPE的代码路径。 FindBugs进行的分析主要限于单个方法。
如果使用@Nonnull
注释常用API的参数,则肯定对分析器(FindBugs)有所帮助。
测试NPE似乎没有任何价值。如果这是一个公共API(重要API)并且空指针正确处理(即:与IllegalArgumentException
一起使用),我会看到价值。
这显然是一种意见。测试水平没有真理。
关于java - 如果启用了静态分析,是否在测试用例中执行NULL检查?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38319756/