[工具]小测试和学习项目清单化框架

下载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项目。

  我们可以把此项目设置一个快捷方式到桌面,脑中灵光一闪想写程序的时候就点吧~

时间: 2024-10-11 14:19:51

[工具]小测试和学习项目清单化框架的相关文章

struts2 返回页面数据小测试

用户通过查询,后台得到查询数据,那么struts2这么把查询的数据,在页面显示?做个小测试. 创建项目 导入jar包(如果不知道导入哪些jar,参考前面章节)测试jar包为2.5 配置web.xml 写测试 项目结构图 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu

(学习随笔)关于浮动元素换行机制的小测试

引言: 之前看了一篇张鑫旭老师的博文<关于文字内容溢出用点点点(-)省略号表示>.其中的他的"margin负值定位法"原理中的"当文字内容足够长时就把隐藏在上面的省略号层给挤下来了."着实研究了好久,才发现自己在浮动换行机制这方面的欠缺,同时又发现网上对这一机制并没有非常深入探讨的文章,所以自己来做个小测试研究下:) 正文: 在W3School里CSS教学中关于浮动的说明里,对于浮动元素的换行,说法只有一句"浮动的框可以向左或向右移动,直到它的

Android 开源项目android-open-project开发工具及测试工具解析 开发效率工具,开发自测相关,测试工具,开发及编译环境,其他

主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Parceler 通过注解及工具类自动完成实体类 Parcelable及值传递 项目地址:https://github.com/johncarl81/parceler Json2Java 根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能 项目地址:https://github.com/jonfhancoc

GitHub 上 57 款最流行的开源深度学习项目

转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github 本文整理了 GitHub 上最流行的 57 款深度学习项目(按 stars 排名).最后更新:2016.08.09 1.TensorFlow 使用数据流图计算可扩展机器学习问题 TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow 的表现比第一代的 DistBelief 快了2

微信小程序,学习笔记(一)框架,视图层

微信小程序,学习笔记(一)框架,视图层 学习链接:http://www.w3cschool.cn/weixinapp/ 因为其实并非原创,但是并没有什么好的类别可选,所以修改成:"翻译"了. 熟悉 文档结构介绍 --- [D] pages --- [D] utils --- [F] app.js --- [F] app.json --- [F] app.wxss 全局变量.对象.方法 普通类型 对象 App 应用程序全局实例,在app.js中定义,每个程序只有一个实例,可以通过如下方式

[Gevent]gevent 网络抓取小测试

早就听说gevent基于事件的异步处理能力 效率多么高,一直在项目中也很少用到,今天先来没事就学习了些简单的用法. 有个官方的教程写的很不错 中文版的地址为:http://xlambda.com/gevent-tutorial/ 学习gevent很不错的资料. 具体的理论这里不怎么说了,只是有些了解,具体的原理还不能解释的很清楚.不过协程这种概念在golang里面很多. 写了一个访问网络,使用同步操作,gevent 和 多线程对比的例子. #!/usr/bin/python # -*- codi

客户端发现_观影团活动页面开发与客户端新版跳转测试页面开发项目总结

   这一周过的是我理想的实习状态,手头有项目则忙项目,没项目则提高基础技能.那么下面来看看这周做的活动页面效果吧. 项目介绍 (一).观影团活动页面的开发 本项目页面的开发基本都是用之前用过的技术,不同之处在于乐帝之前的开发处于懵懂状态,现在回头看还是有些许的提高,对页面每一行代码都知道来龙去脉,弹出窗.对齐.居中布局都从本周阅读<前端开发修炼之道>有了更深层次的认识.css对齐与居中布局都不是单独属性完成的,而是有关联及触发的,而之前写页面不理解的恰恰是属性间的触发关系. 这里拿弹出窗的构

微信小程序“信用卡还款”项目实践

小程序概述 11月3日晚,微信团队对外宣布,微信小程序开放公测.开发者可登陆微信公众平台申请,开发完成后可以提交审核,公测期间暂不能发布. 我们前一段时间也进行了小程序开发,现在来对之前的开发体验做一个总结. 1. 小程序是什么? 微信小程序是一种介于原生app.和web app的hybrid.通过微信进行加载,实现类似原生app的流畅.相对原生app来说,小程序更加轻量.更新实时.跨平台:相对web app来说,小程序资源离线,体验更流畅. 微信小程序的设计目标是通过尽可能简单.高效的方式让开

【转】不懂得使用工具的测试不是好测试

测试工具大全,这里应该有你想要的. 压力测试工具集 工具相关网址 LoadRunner http://www.mercuryinteractive.com/products/loadrunner/ SilkPerformer http://www.segue.com/products/load-stress-performance-testing/index.asp QALoad http://www.compuware.com/products/qacenter/qaload.htm WebL