C#建立测试用例系统的示例代码
更新时间:2020年11月3日 15:20 点击:1832
引言
很多时候,需要对类中的方法进行一些测试,来判断是否能按要求输出预期的结果。
C#提供了快速创建单元测试的方法,但单元测试不仅速度慢不方便,大量的单元测试还会拖慢项目的启动速度。
所以决定自己搞个方便的测试用例。
控制台调用
只需要简简单单的一句话
测试用例.注册并Print(EnumEx.Name);
结果画面
测试用例的实现
/// <summary> /// 提供测试用例的注册和运行功能,用来比对结果和预期值是否相同,向控制台输出结果。 /// </summary> public class 测试用例 { /// <summary> /// 测试的方法 /// </summary> public Func<string> 方法 { get; set; } /// <summary> /// 测试名称 /// </summary> public string 名称 { get; set; } /// <summary> /// 期望得到的结果string /// </summary> public string 期望值 { get; set; } /// <summary> /// 新建一个测试 /// </summary> /// <param name="v名称">测试名称</param> /// <param name="v期望值">期望得到的结果string</param> /// <param name="v方法">测试的方法</param> public 测试用例(string v名称, string v期望值, Func<string> v方法) { 名称 = v名称; 期望值 = v期望值; 方法 = v方法; } /// <summary> /// 储存所有注册的方法。 /// </summary> public static OrderedDictionary<string, 测试用例> 方法册 = new OrderedDictionary<string, 测试用例>(); /// <summary> /// 将「返回值为string的方法〈Func<string>〉」注册到「方法册」中。 /// </summary> /// <param name="测试用例">要注册的测试</param> /// <returns>返回是否注册成功</returns> public static bool 注册(测试用例 测试用例) { return 方法册.添加(测试用例.名称, 测试用例); } /// <summary> /// 运行指定名称的测试并返回运行结果〈<see cref="string"/>〉 /// </summary> /// <param name="名称">方法注册到测试的名称</param> /// <returns>返回运行结果〈<see cref="string"/>〉</returns> public static string 运行(string 名称) { if (方法册.有键(名称)) { return 方法册[名称].方法.Invoke(); } else { return 名称 + " : 不存在该方法!"; } } /// <summary> /// 注册并向控制台输出运行结果。 /// </summary> /// <param name="测试用例"></param> public static void 注册并Print(测试用例 测试用例) { if(方法册.添加(测试用例.名称, 测试用例)) { Print(测试用例.名称); } } /// <summary> /// 向控制台输出运行结果。 /// </summary> /// <param name="测试用例"></param> public static void Print(测试用例 测试用例) { Print(测试用例.名称); } /// <summary> /// 向控制台输出运行结果。 /// </summary> /// <param name="名称"></param> public static void Print(string 名称) { string 结果 = 运行(名称); string 期望 = 方法册[名称].期望值; Console.WriteLine(名称 + "\r\nResult: "+ 结果); 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:
//************************************************************ /// <summary> /// ◇ 增强 枚举〖System.Enun〗的扩展功能。 /// </summary> /// <seealso cref="Enum"/> /// <remarks></remarks> //************************************************************ public static class EnumEx { //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /// <summary> /// 返回枚举 「thisEnum」 的定义名称〈<see cref="string"/>〉 /// </summary> /// <param name="thisEnum">该枚举自身</param> /// <returns>〈string〉返回枚举的定义名称</returns> public static string Name(this Enum thisEnum) { return Enum.GetName(thisEnum.GetType(), thisEnum); }
测试用例是这样的,把它放到项目.Test namespace中以避免重名:
这里填入要显示的名称、期望值、方法体。
- 方法体的返回参数必须为 string
- 两个用例名称不能相同否则会覆盖。
/// <summary> /// EnumEx的测试用例。 /// </summary> public class EnumEx { /// <summary>【测试用例】EnumEx.Name() </summary> public static 测试用例 Name = new 测试用例("EnumEx.Name - UriComponents.Path.Name()", "Path", NameFunc); /// <summary>【测试方法】UriComponents.Path调用EnumEx.Name() 返回值 ➤ "Path" </summary> /// <returns>返回值应该等于"Path"</returns> public static string NameFunc() { return UriComponents.Path.Name(); } }
最后在新建控制台应用程序,就叫项目.Test,这样测试有关内容处在相同namespace,直接调用就行了
以上就是C#建立测试用例系统的示例代码的详细内容,更多关于C#建立测试用例系统的资料请关注猪先飞其它相关文章!
相关文章
- 我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
- 这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
- 这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
- 这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25