Coverity Scanの誤った結果でパターンが発生しました。 i.f()
の結果は、おそらく可能性があるため、私は、私は次のテストでのスタブ実装からの静的解析でnull参照解除の警告を表示しない
I i;
i.f().equals(other);
をすれば、私がnullの間接参照の警告を取得し、IImpl
とFakeI
interface I {
String f();
}
class IImpl {
String f() {
return "f";
}
}
class FakeI {
String f() {
return null;
}
}
このコードを考えると、インタフェースI
、および2つの実装を持っていますその値はFakeI
です。 FakeI
はテストコードで実装されているため、私の生産コードではそれが見えません。しかし、Coverityはそのことを知らない。
どのような解決策がありますか?私は完全に分析からテストコードを削除するか、私の偽物を再訪し、nullを返さないようにすることを考えました。これを処理するのに役立ついくつかのCoverity機能がありますか?
使用する前に戻り値をチェックすると、苦情はなくなります。 – tipaye