WF单元测试系列1:测试基本的Activity

发表于:2009-3-12 13:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zhaojunqi    来源:cnblogs

  Windows Workflow Foundation是一套非常灵活,易用,架构良好的工作流平台。目前使用WF开发工作流的也越来越多,但市面上却鲜见有关WF单元测试文章。今天笔者就介绍一下如何对WF进行单元测试,以及如何对WF应用TDD(测试驱动开发)。

  熟悉WF的人都知道,WF是一些按结构组织好的Activity在Runtime里执行。Runtime提供运行环境,管理Activity的执行,Activity负责做具体的事情。我们测试WF,当然测试的就主要是Activity。

  大家知道Activity所做的事情都在Execute()方法里。Runtime就是通过调用Activity的Execute方法执行它的。但WF里有一个限制,就是Activity的Execute()是Protected(保护)的。我们的测试代码不能直接调用它。所以我们要绕过这个限制,使得我们能调用Execute()。

  其实也很简单,解决方法其实也就在这个Protected里,大家都知道:Protected方法只允许类本身,和它的子类调用。这就给我们一个启示,我们只要添加一个子类,集成要测试的Activity,不就可以调用父类的Execute方法了吗!

  说干就干:比如我现在有一个叫做GetEmailAddress的Activity。它负责根据用户提供的两个参数LastName和FirstName,生成一个Email地址(体生成Email的方法,跟本文无关)。在这里,GetEmailAddress从另一个叫做BaseEmployeeActivity的Activity集成而来,这个基类没有做任何事情,只是定义了三个DependencyProperty:LastName,FirstName和Email,用来保存输入参数和生成的Email地址。这里只列出GetEmailAddress的Execute()方法:

protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
 {

    Email = EmailAddressCreator.GetInstance().CreateEmailAddress(FirstName, LastName);
    return ActivityExecutionStatus.Closed;
 }

  代码很简单,调用了另一个类的方法,生成了Email,然后结束Activity的执行。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号