Как покрыть ожидаемые исключения с помощью dotcover?
Я использую Dotcover, чтобы увидеть охват моих тестов юнитов моего производственного кода. Это работает довольно хорошо, за исключением случаев, когда я пытаюсь проверить выброшенные исключения, и это мой вопрос, что я делаю там неправильно. Я уже испробовал оба варианта ниже и получил только 92% или 89% покрытия.
Как примечание о платформе модульного тестирования: я не использую никакой внешней / дополнительной инфраструктуры, но инфраструктуру Unittest, которая поставляется с самой Visual Studio.
[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);
}
}
Я также попробовал с формиатным исключением в улове и еще одном улове вокруг него, но все же самый высокий результат, который я получаю, составляет 92%, а в остальном гораздо меньше, вплоть до 16%. Так как упомянул мой вопрос здесь, что я делаю не так там?
В качестве дополнительной информации о myclass он имеет следующее свойство и приватную переменную:
private int _DatabaseID;
public int DatabaseID
{
get { return _DataBaseID; }
set { if (value != 0) {_DatabaseID = value; } else { throw new FormatException ("haha"); }
}