WEB开发网
开发学院软件开发C语言 WF单元测试系列4:测试Workflow 阅读

WF单元测试系列4:测试Workflow

 2010-10-01 08:19:36 来源:WEB开发网   
核心提示: 简单解释一下代码: _createAcmeEmployee对象负责获取工作流的返回值,用来验证测试结果,WF单元测试系列4:测试Workflow(2), _manualScheduler和_runtime负责工作流的运行, TestInitializer()方法负责初始化测试环境,体会,问题,

简单解释一下代码:

_createAcmeEmployee对象负责获取工作流的返回值,用来验证测试结果。

_manualScheduler和_runtime负责工作流的运行。

TestInitializer()方法负责初始化测试环境,实际上就是运行工作流,并在工作流结束之后获取输出参数给_createAcmeEmployee对象。

RunTheWorkflow()方法传递FirstName和LastName两个参数给被运行的ProvisionNewEmployee工作流。

CreateAValidAcmeEmployee()方法用指定的参数运行工作流,然后验证工作流生成的AcmeEmployee对象的FirstName和LastName是否和传入的参数一致。

运行测试,失败!因为我们还没有为工作流添加逻辑呢。

这时我们之前创建的两个Activity派上用场了。编译工程,然后从Toolbar中依次把GetEmailAddress和StoreNewAcmeEmoloyee拖到工作流当中。设置他们的属性:

1.把GetEmailAddress的FirstName,LastName分别绑定到工作流的对应属性上,从而获得传入的参数值。GetEmailAddress负责根据这两个参数生成一个Email,保存到它的Email属性上。

2.把StoreNewAcmeEmoloyee的Email属性绑定到GetEmailAddress的Email上,用来获得它生成的Email。

3.绑定StoreNewAcmeEmoloyee的FirstName,LastName到工作流的对应属性上,同样用来获得参数值。

4.绑定StoreNewAcmeEmoloyee的NewEmployee属性到工作流的对应属性上,用来输出它生成的对象。

看到这里大家应该明白了,我的工作流根据传入的两个参数生成Email,再根据这三个参数生成一个AcmeEmployee对象,然后输出给宿主。

最后还有一个细节,大家还记得吧,StoreNewAcmeEmployee把生成的AcmeEmployee对象添加到一个IEmployeeRepository中保存(调用它的Add方法)。所以在工作流中添加如下代码:

ProvisionNewEmployeeWF_Initialized
        private void ProvisionNewEmployeeWF_Initialized(object sender, EventArgs e)
        {
            _storeNewAcmeEmployeeActivity.EmployeeDataStore =

AcmeEmployeeRepository.GetInstance();
        }

用来在工作流初始化时实例化此接口。

OK!我们的逻辑添加完毕!运行测试,通过!

至于另外两个测试方法,则是测试错误路径的,前面讲过,不再赘述。

我们的WF测试系列就此结束了。当然关于此的话题不会就此终结,大家有什么关于WF测试的心得,体会,问题,欢迎一起讨论!

注:以上示例来自WF3.5 Hands On Lab,英文好的朋友可以去这里看:https://www.microsoft.com/resources/virtuallabs/step3-msdn.aspx?LabId=c4a993a5-d498-4d5c-9f98-476c1f496d15&BToken=reg

系列文章:

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

WF单元测试系列2:简单测试Activity的行为

WF单元测试系列3:测试Activity的行为

上一页  1 2 

Tags:WF 单元

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接