栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#建立测试用例系统的示例代码

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#建立测试用例系统的示例代码

引言

很多时候,需要对类中的方法进行一些测试,来判断是否能按要求输出预期的结果。

C#提供了快速创建单元测试的方法,但单元测试不仅速度慢不方便,大量的单元测试还会拖慢项目的启动速度。

所以决定自己搞个方便的测试用例。

控制台调用

只需要简简单单的一句话

测试用例.注册并Print(EnumEx.Name);

结果画面

测试用例的实现

/// 
  /// 提供测试用例的注册和运行功能,用来比对结果和预期值是否相同,向控制台输出结果。
  /// 
  public class 测试用例 {
    /// 
    /// 测试的方法
    /// 
    public Func 方法 { get; set; }
    /// 
    /// 测试名称
    /// 
    public string 名称 { get; set; }
    /// 
    /// 期望得到的结果string
    /// 
    public string 期望值 { get; set; }
    /// 
    /// 新建一个测试
    /// 
    /// 测试名称
    /// 期望得到的结果string
    /// 测试的方法
    public 测试用例(string v名称, string v期望值, Func v方法) {
      名称 = v名称;
      期望值 = v期望值;
      方法 = v方法;
    }

    /// 
    /// 储存所有注册的方法。
    /// 
    public static OrderedDictionary 方法册 = new OrderedDictionary();

    /// 
    /// 将「返回值为string的方法〈Func〉」注册到「方法册」中。
    /// 
    /// 要注册的测试
    /// 返回是否注册成功
    public static bool 注册(测试用例 测试用例) {
      return 方法册.添加(测试用例.名称, 测试用例);
    }

    /// 
    /// 运行指定名称的测试并返回运行结果〈〉
    /// 
    /// 方法注册到测试的名称
    /// 返回运行结果〈
    public static string 运行(string 名称) {
      if (方法册.有键(名称)) {
 return 方法册[名称].方法.Invoke();
      } else {
 return 名称 + "  : 不存在该方法!";
      }
    }
    /// 
    /// 注册并向控制台输出运行结果。
    /// 
    /// 
    public static void 注册并Print(测试用例 测试用例) {
      if(方法册.添加(测试用例.名称, 测试用例)) {
 Print(测试用例.名称);
      }
      
    }
    /// 
    /// 向控制台输出运行结果。
    /// 
    /// 
    public static void Print(测试用例 测试用例) {
      Print(测试用例.名称);
    }
    /// 
    /// 向控制台输出运行结果。
    /// 
    /// 
    public static void Print(string 名称) {
      string 结果 = 运行(名称);
      string 期望 = 方法册[名称].期望值;
      Console.WriteLine(名称 + "rnResult: "+ 结果);
      Console.Write("期望值: " + 期望);
      if (结果 == 期望) {
 var c = Console.ForegroundColor;
 Console.ForegroundColor = ConsoleColor.Green;
 Console.WriteLine(" [TRUE]");
 Console.ForegroundColor = c;
      } else {
 var c = Console.ForegroundColor;
 Console.ForegroundColor = ConsoleColor.Red;
 Console.WriteLine(" [FALSE]");
 Console.ForegroundColor = c;
      }
    }

  }

它可以方便的测试某个方法的返回string是否等于设定期望值

可以输出到控制台,也可以保存在string。

要测试的类,位于项目 namespace:

//************************************************************
  /// 
  /// ◇ 增强 枚举〖System.Enun〗的扩展功能。
  /// 
  /// 
  /// 
  //************************************************************
  public static class EnumEx {
    //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    /// 
    /// 返回枚举 「thisEnum」 的定义名称〈〉
    /// 
    /// 该枚举自身
    /// 〈string〉返回枚举的定义名称
    public static string Name(this Enum thisEnum) {
      return Enum.GetName(thisEnum.GetType(), thisEnum);
    }

测试用例是这样的,把它放到项目.Test namespace中以避免重名:

这里填入要显示的名称、期望值、方法体。

  1. 方法体的返回参数必须为 string
  2. 两个用例名称不能相同否则会覆盖。
/// 
  /// EnumEx的测试用例。
  /// 
  public class EnumEx {
    /// 【测试用例】EnumEx.Name() 
    public static 测试用例 Name = new 测试用例("EnumEx.Name - UriComponents.Path.Name()", "Path", NameFunc);
    /// 【测试方法】UriComponents.Path调用EnumEx.Name() 返回值 ➤ "Path" 
    /// 返回值应该等于"Path"
    public static string NameFunc() { return UriComponents.Path.Name(); }
  }

最后在新建控制台应用程序,就叫项目.Test,这样测试有关内容处在相同namespace,直接调用就行了

以上就是C#建立测试用例系统的示例代码的详细内容,更多关于C#建立测试用例系统的资料请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/122003.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号