Unser Projekt hat statische Analyse aktiviert, und wenn es um das Testen geht, beginnen wir uns Sorgen zu machen, ob wir auf NULL-Prüfung testen sollen oder was bereits durch die statische Analyse getestet wurde.Ob NULL-Check-in-Testfälle durchgeführt werden sollen, wenn die statische Analyse aktiviert ist?
Sollte ich noch für diese Sachen testen?
z. Für Methode:
@RegEx("bla.*bla")
public static String bar(@Nonnull Foo par1)
Sollten wir haben Test dieses:
assertTrue(Pattern.matches(XXX.bar(someFoo)));
Dann testen für die NPE geworfen, wenn null übergeben wird?
EDIT: Wir verwenden Findbugs, aber ich denke, das Problem gilt auch für andere statische Code-Analyse-Tools.
Welcher statische Analysator wird verwendet? Mahnt es, wenn es nicht beweisen kann, dass das Ergebnis den durch die Annotation festgelegten Vertrag erfüllt (das ist in Ordnung, hat aber möglicherweise falsche Positive), oder nur wenn es beweisen kann, dass das Ergebnis den Vertrag definitiv nicht erfüllen kann (nicht ok, wie es ist) kann falsche Negative haben)? – HairyFotr
Es ist Findbugs. Ich habe das Tag hinzugefügt. Allerdings kenne ich nicht die Einzelheiten über seinen Mechanismus, aber ich denke, es ist der erste. @HairyFotr – glee8e