Как покрыть ожидаемые исключения с помощью 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"); }
}

0 ответов

Другие вопросы по тегам