私のユニットテストが実際に必要なものすべてを実際にテストするかどうかをテストします。特に私が特定のアサーションを欠場していないかどうかを確認する方法は?例えばユニットテストは、目的に応じてコードを破ることで確認してください。
テイクこのコード:
int AddPositives(int a, int b)
{
if (a > 0 && b > 0)
return a + b;
return -1;
}
そして誰かがそのようにユニットテストを書いた:
[Test]
public void TestAddPositives()
{
Assert.AreEqual(3, AddPositives(1, 2));
AddPositives(0, 1);
}
明らかにアサートが、ここで逃した
、あなたはコードレビューでキャッチすることがあります。しかし、どのようにこれを自動的にキャッチしますか?だから、アサート行方不明に検出する目的でテストコードを破るものがありますか?ユニットテストが失敗することなく、バイトコードを調べて定数を変更したり、コードを削除して変更できるかどうかをチェックするもの。このようNCrunch(無料優秀ではない)として
ない(例えばa = 0のとき何が起こるかを確認するなど)境界条件をテストするために失敗したことを教えてくれないでしょう。コードを確認してから、テストするすべてのユースケースを生成する必要があります。 – Nkosi
コードカバレッジは、コード内の単体テストの対象ではないスポットに役立ちます。ただし、生成するレポートを確認する必要があります。繰り返しますが、これらのツールはレビュープロセスにのみ役立ちます。私が知る限り、そこには自動プロセスはありません。 – Alp