[工具]小测试和学习项目清单化框架
2018-06-17 20:16:07来源:未知 阅读 ()
下载:Personal_Study_Assistant.zip
背景
实际中,我们可能要经常会对一些API或小核心代码不太确定,于是写一些小测试代码,如正则表达式测试。时间久了,这些小项目散落得到处都是,查找和整理起来都比较费时间。
“工欲善其事,必先利其器”,下面让我们来解决一下这个问题吧。
程序的思路是: 1所有的测试文件统一归类存放于不同的Project; 2Project启动时,自动生成所有测试代码的清单,通过输入清单序号选择对应的测试来执行,不用更改Program的Main方法。
(目前还不能显示测试用例对应的文件名)。
效果
说明
继续往下前,建议先下载Demo。
1 Cp.Core
核心层中目前只有一个类和一个接口。接口ITest描述了作为测试实例应该具备的属性和方法。CaseContainer用于扫描当前项目中的测试用例,生成上面的菜单。
代码中使用到的主要知识点为反射。
2 Cp.EmitStudy
有了核心层,下面就开始根据我们的需求,进行分类存放测试实例了。Demo中,以Emit学习为例,那了一个新的Project,类型为控制台类型。
新项目的Program.cs的Main函数只有一行代码:
static void Main(string[] args) { CaseContainer.ShowCases(); }
余下的就是写我们的测试或学习用例了。Demo中Test2为我模拟AutoMapper写的一段代码,用于在两个对象间相互浅复制属性:
class Test2:ITest { class Model { public string Name { get; set; } } class ViewModel { public string Name { get; set; } } public string Name { get { return "Linq Assign Expression Test"; } } public string Description { get { return "This demo demenstrates how to use Linq Expression to mapping properties between two object."; //return "此示例展示了如何利用Linq Expression将两个对象的属性进行映射"; } } public void Test() { Expression<Func<Model, string>> exp1 = m => m.Name; Expression<Func<ViewModel, string>> exp2 = vm => vm.Name; var assignExp = Expression.Assign(exp2.Body, exp1.Body); var mapAction = Expression.Lambda<Action<Model, ViewModel>>(assignExp, exp1.Parameters[0], exp2.Parameters[0]).Compile(); var m1 = new Model() { Name = "MODEL's Name" }; var m2 = new ViewModel(); mapAction(m1, m2); Console.WriteLine(m2.Name); } }
3 后续
余下来要做的就是,写新的用例,放在当前项目下,然后F5。查看和启动都会比较方便。
有时候我们可以为了学习某一个框架或一些代码自己写一些测试Demo,那么我们可以专门建一个新的Study项目。
我们可以把此项目设置一个快捷方式到桌面,脑中灵光一闪想写程序的时候就点吧~
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Delphi10.3的ListView学习(大图标) 2020-06-05
- Delphi10.3的SpeedButton/BitBtn学习 2020-06-05
- uniGUI学习之UniStringGrid(35) 2020-04-15
- uniGUI学习之uniButton图标(34) 2020-04-09
- UniGUI学习之hbox布局(33) 2020-04-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash