C#建立测试用例系统的示例代码
建立测试用例系统的示例代码
主要介绍了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(名称 + "\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:
//************************************************************
///
/// ◇ 增强 枚举〖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. 两个用例名称不能相同否则会覆盖。