如何使以下代码覆盖率达到100%

时间:2011-08-23 15:50:50

标签: c# unit-testing

public void test(int a)

{
    if (a<=3)
      {...}
    else if (3<a && a<=8)
      {...}
    else
      {...}
}

上面的代码在vs 2010中输入并为其创建UT。 我试图将参数a设置为2,3,4,8,9。似乎它已经覆盖了所有代码。但在运行UT之后,代码覆盖率仍然不高达100%。 任何建议都将非常感谢!

2 个答案:

答案 0 :(得分:2)

3<a测试不可能出错(因为第一个测试已经处理掉了),所以从3<a到底部else块的跳转是从未执行过。

答案 1 :(得分:1)

您无法通过测试覆盖代码块通常可以很好地表明您可以简化代码而不会丢失任何执行路径。请考虑以下代码,它们以100%的覆盖率执行相同的操作:

    public void test(int a)
    {
        if (a <= 3)
        {
        }
        else if (a <= 8)
        {
        }
        else
        {
        }
    }