如何用dotcover覆盖预期的例外情况?

时间:2014-11-21 09:28:13

标签: c# visual-studio-2013 dotcover

我使用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);
    }
}

我也尝试过捕捉中的一种形态感染,并且还有另一种捕获方式,但我获得的最高值仍然是92%,其他方式甚至低于16%。所以如上所述我的问题是我在那里做错了什么?

作为关于myclass的其他信息,它具有以下属性和私有变量:

private int _DatabaseID;

public int DatabaseID
{
     get { return _DataBaseID; }
     set { if (value != 0) {_DatabaseID = value; } else { throw new FormatException ("haha"); }
}

0 个答案:

没有答案