.NET单元测试

定义

  单元测试是一段自动化的代码,用来调用被测试的方法或类,而后去验证基于该方法或类的一些假设,白盒测试的一种。

特性

  •   自动化
  •   可复用
  •   易于实现
  •   快速运行

  一个优秀的单元测试,应该是全自动的、可信赖的、可读性强、可维护的。

目的

  帮助程序员较早的发现代码缺陷,提升产品质量,节省人力成本。

实践

  这里我们使用VS2010自带的Unit Test进行单元测试。

  场景如下,我们现在有一个功能模块能够实现计算器的功能,代码如下:

  
    /// <summary>
    /// 计算器。
    /// </summary>
    public class Calculator
    {
        /// <summary>
        /// 加法。
        /// </summary>
        public decimal Plus(int a, int b)
        {
            return a + b;
        }

        /// <summary>
        /// 减法。
        /// </summary>
        public decimal Subtraction(int a, int b)
        {
            return a - b;
        }

        /// <summary>
        /// 乘法。
        /// </summary>
        public decimal Multiplication(int a, int b)
        {
            return a * b;
        }

        /// <summary>
        /// 除法。
        /// </summary>
        public decimal Division(int a, int b)
        {
            return a/b;
        }
    }
计算器

  我们需要对它进行单元测试,如图:

添加测试项目后,添加如下测试类型:

 

对计算器中的除法先进行测试:

        [TestMethod]
        public void TestDivision()
        {
            var cal = new Calculator();
            var result = cal.Division(4, 2);
            Assert.AreEqual(result, 2);
        }
单元测试

右键Run Test(也可在左侧Run),运行后,结果为绿色,表示通过:

但如果我们对测试代码稍做调整,将除法的被除数变为0,看看会发生什么情况:

        [TestMethod]
        public void TestDivision()
        {
            var cal = new Calculator();
            var result = cal.Division(4, 0);
            Assert.AreEqual(result, 0);
        }
单元测试

结果显示Failed,发生错误,表示我们的代码存在问题,未考虑除零错误,对代码进行调整:

1         /// <summary>
2         /// 除法。
3         /// </summary>
4         public decimal Division(int a, int b)
5         {
6             if (b == 0)
7                 return 0;
8             return a/b;
9         }
除法

重新运行后通过,到这里,一个简单的测试就完成了。

.NET单元测试,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。