108.C# 单元测试

108.C# 单元测试

编码文章call10242025-01-15 11:05:1914A+A-

摘要


所谓单元测试(unit testing),就是开发者编写的一小段代码,用于对软件中的最小单元进行检查和验证,其一般验证对象是一个函数或者一个类。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

正文


为什么要使用单元测试?

  • 大大节约了测试和修改的时间,有效且便于测试各种情况。
  • 能快速定位bug(每一个测试用例都是具有针对性)。
  • 能使开发人员重新审视需求和功能的设计(难以单元测试的代码,就需要重新设计)。
  • 强迫开发者以调用者而不是实现者的角度来设计代码,利于代码之间的解耦。
  • 自动化的单元测试能保证回归测试的有效执行。
  • 使代码可以放心修改和重构。
  • 测试用例,可作为开发文档使用(测试即文档)。
  • 测试用例永久保存,支持随时测试。

新建一个类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace utest
{
    public class Material
    {
        public string Name { get; set; }
        public int Qty { get; set; }

        public void In(int qty)
        {
            this.Qty += qty;
        }

        public void Out(int qty)
        {
            this.Qty -= qty;
        }
    }
}

新建一个单元测试项目

菜单Test中找到 Test Explorer

写一下测试代码

public void QtyTest()
{
    Material material = new Material();
    material.Qty = 10;
    Assert.AreEqual(material.In(5), 20);

}

右键运行过程

Assert类主要的静态成员

1、 AreEqual:方法被重载了N多次,主要功能是判断两个值是否相等;如果两个值不相等,则测试失败。

2、 AreNotEqual:方法被重载了N多次,主要功能是判断两个值是否不相等;如果两个值相等,则测试失败。

3、 AreNotSame:引用的对象是否不相同;如果两个输入内容引用相同的对象,则测试失败.

4、 AreSame:引用的对象是否相同;如果两个输入内容引用不相同的对象,则测试失败

5、 Fail:断言失败。

6、 Inconclusive:表示无法证明为 true 或 false 的测试结果

7、 IsFalse:指定的条件是否为 false;如果该条件为 true,则测试失败。

8、 IsTrue:指定的条件是否为 true;如果该条件为 false,则测试失败

9、 IsInstanceofType:测试指定的对象是否为所需类型的实例;如果所需的实例不在该对象的继承层次结构中,则测试失

10、 IsNotInstanceofType: 测试指定的对象是否为所需类型的实例;如果所需的实例在该对象的继承层次结构中,则测试失败

11、 IsNull:测试指定的对象是否为非空

12、 IsNotNull:测试指定的对象是否为非空

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4