私は Dotcover を使用して、ユニットテストが私の製品コードをカバーしているかどうかを確認しています。スローされた例外をテストしようとしている場合を除いて、それは非常にうまく機能します。それが私の質問です。以下の両方のバリアントを既に試しましたが、92% または 89% のカバレッジしか得られません。
単体テスト フレームワークに関する注意事項: 外部/追加のフレームワークは使用していませんが、Visual Studio 自体に付属している Unittest フレームワークを使用しています。
[TestMethod]
[ExpectedException(typeof(FormatException), "No exception or exception of wrong type thrown")]
public void TestException()
{
new myClass().DatabaseID = 0;
}
[TestMethod]
public void TestException()
{
try {
new myClass().DatabaseID = 0;
Assert.Fail
}
catch (Exception ex)
{
Assert.IsTrue (ex is FormatException);
}
}
また、キャッチで formatexception を使用して、その周りに別のキャッチを試してみましたが、それでも最高は 92% であり、それ以外の場合は 16% まで低下します。だから、私の質問がここで述べたように、私はそこで何が間違っているのですか?
myclass に関する追加情報として、次のプロパティとプライベート変数があります。
private int _DatabaseID;
public int DatabaseID
{
get { return _DataBaseID; }
set { if (value != 0) {_DatabaseID = value; } else { throw new FormatException ("haha"); }
}