【问题标题】:Code coverage of the given code给定代码的代码覆盖率
【发布时间】:2017-10-02 00:17:19
【问题描述】:

为什么会这样, 如果只对函数 B 进行单元测试,则函数 A 的覆盖率为 50%。 即使我们将函数 B 的值设为 (1,2,3) 它会覆盖第一个函数的 if 和 else,但为什么覆盖率仍然是 50%?

Public int A(int a,int b)
{
if (a%2==0) 
      return a;
else 
    return b;
}


Public int B (int a,int b,int c)
{
 int val=A(a,b);    
 val=A(val,c);
    }

【问题讨论】:

  • 静态代码分析不能跨语义块。那就是该工具无法从B检测到通过A的代码路径。
  • 如果我们在纸上进行代码覆盖怎么办?就像空跑一样。
  • 这和c#或c++有什么关系?
  • 不要垃圾标签。

标签: java c# c++ code-coverage


【解决方案1】:

你一定是做错了什么。它向我展示了 100% 的覆盖率。这是测试(目的不是显示这是否是一个好测试,而是回答您的问题):

[TestMethod]
public void SomeTest()
{
    ClassLibrary1.Class1 csl = new ClassLibrary1.Class1();
    csl.B(1, 2, 3);

    Assert.IsTrue(true);
}

这是该测试的覆盖结果:

【讨论】:

    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2018-01-11
    • 2016-11-29
    • 2017-05-03
    • 2012-05-04
    • 2018-07-10
    相关资源
    最近更新 更多