Welcome

首页 / 软件开发 / .NET编程技术 / 一个超轻量级的测试平台

一个超轻量级的测试平台2011-02-03 博客园 朱祁林有时候,在开发环境中测试核心业务职能,可能需要花很长而宝贵的时间。

幸运地是有很多简单而且自动化的测试平台。尽管如此,这个操作却不会总是能提供预期的结果。有时,它需要人为进行检查和评价。

此外,在一个大型项目中,编译几十个类,每一点变动是非常耗费时间和精力的,自动测试将不会达到预期的行为。OBP控制台测试框架是一个非常简单,轻量级的类库,它用于测试你的业务对象,但它没有一个像windows forms,web, silverlight 、WPF的图形界面。

OBP控制台测试库的主要目的是:在将代码整合到相关项目中之前,检查它的核心业务功能。

在测试类有下列行为:

在运行时,通过自定义属性和反射找出测试类和测试方法

提供测试人员提供一个简单菜单式的控制台的用户界面

允许重复使用菜单(控制台上的)

便利地显示的业务对象的集合,并能便利从中选择单独的业务对象进行测试。

文章中的一些定义

测试方法 :能通过执行一些动作来验证开发项目的行为、动作、过程。

测试类 :是包含一个或多个测试方法的类。它也可能还包含测试类成员来执行重叠测试。

菜单 :是在控制台上显示一系列的活动,允许测试人员使用键盘调用一个给定的测试方法。

结构:

整个类库是建立在一个简单的类上:CustomConsoleTest。这个类完成以下行动:

1、它使用反射浏览所有子类的方法并找出有“TestMethod”属性的方法。

2、使用“TestMethod”属性,它能正确显示在菜单上使用的方法的名称。

测试时,简化了业务对象集合的显示,以及简化在集合中选择单独的业务对象。

3、为了进行测试,你需要实例化一个CustomConsoleTest子类(这个类是抽象的)和调用方法“Execute”方法。

在这个简单的类中,神奇之处是一个测试类可以嵌入其他的测试类,执行父类中的测试方法能调用子类的Execute方法。因此,你能很快建立一个分层控制台菜单,用于在整合之前专注于核心业务功能的测试。

实现:

所有的测试类都要继承CustomConsoleTest。下面是构造函数:

CustomConsoleTest

public CustomConsoleTest()
{
var t = this.GetType();
int i = 0;
string name = null;
// find the methods
foreach (var m in t.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
if (IsValidMethod(m, ref name))
{
var item = new MethodItem(name, m);
_methods.Add(_menuKeys[i], item);
++i;
}
}
}