代码之家  ›  专栏  ›  技术社区  ›  SmartestVEGA

单元测试代码覆盖率应该包括什么?

  •  0
  • SmartestVEGA  · 技术社区  · 7 年前

    class employee{
    
       public int ButtonID
            {
                get
                {
                    return 
                    function(GetValue("ButtonID"), 0);
                }
                set
                {
                    SetValue("ButtonID", value);
                }
            }
    
        public function getEmployeeID()
        {somthing; }
    
        private function setEmployeeID()
        {somthing; }
    
        protected button_click(e)
        { somthing; }
    
    }
    

    在这里,当我们计算代码覆盖率时,它还包括

    1. getter和setter方法
    2. 按钮单击事件。
    3. 私人职能

    我应该看到以上四个方面的报道吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Eric Olsson    7 年前

    具体到第1点和第2点:

    测试getter和setter取决于这些访问器方法在做什么。如果它们是自动实现的,那么我不建议显式测试它们。我相信。NET框架的实现。如果您希望增加代码覆盖率,那么请确保您和 get set 其他测试期间的属性,以及覆盖范围将被计算在内。

    当涉及到特定于UI的代码时,不值得尝试使用单元测试来测试它。试图在单元测试中操作UI会导致不稳定、缓慢的测试。如果您想在按钮点击处理程序中测试某些内容,那么请尝试将该功能提取到另一个更容易进行单元测试的类中。使文件后面的代码尽可能精简——将工作委托给其他可以测试的类。

    关于第3点和第4点:

    只能通过公共方法测试私有方法。单元测试应该测试类的行为,而不是实现。理论上,你应该能够通过你的公共方法来运用你的私人方法。