WF单元测试系列3:测试Activity的行为
2010-10-01 08:19:39 来源:WEB开发网我们设定这个Activity的功能是:根据给定的参数,创建一个NewEmployee对象,把它存储在EmployeeDataStore对象中。我们先不实现Execute()方法。注意:EmployeeDataStore会在后面使用依赖注入赋值。
为了测试这个Activity,我们如法炮制,在测试工程中加一个新的Activity:StoreNewAcmeEmployee_Accessor,继承自StoreNewAcmeEmployee。并Wrap它的Execute方法。
接下来添加一个测试类:StoreNewAcmeEmployee_ActivityShould。记得引用Rhino.Mocks库。
先把代码贴出来:
StoreNewAcmeEmployee_ActivityShould
using System;
using AcmeCorp.DomainLibrary.AcmeEmployeeDomain;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NewEmployeeWFLibrary.Activities;
using NewEmployeeWFLibrary_Test.Helpers;
using Rhino.Mocks;//引用Rhino Mock库
namespace NewEmployeeWFLibrary_Test.Activities
{
[TestClass]
public class StoreNewAcmeEmployee_ActivityShould
{
//被Mock的对象,将被注入到StoreNewAcmeEmployee的EmployeeDataStore属性。
private IEmployeeRepository _mockEmployeeRepository;
//Mock功能类
private MockRepository _mocker;
[TestInitialize]
public void TestInitializer()
{
//初始化Mock功能类
_mocker = new MockRepository();
//创建Mock对象
_mockEmployeeRepository = _mocker.CreateMock<IEmployeeRepository>();
}
[TestMethod]
public void CallAddOnTheRepo()
{
//记录Mock对象的操作
using (_mocker.Record())
{
_mockEmployeeRepository.Add(null);
LastCall.IgnoreArguments();//忽略上面的null参数,即传什么参数都一样
。
}
//回放Mock对象的操作,Rhino Mock会自动检验对被Mock的对
象_mockEmployeeRepository的操作与上面记录的是否一致
//如果不一致,就会自动抛出异常
using (_mocker.Playback())
{
using (StoreNewAcmeEmployee_Accessor activity = new
StoreNewAcmeEmployee_Accessor())
{
SetActivityProperties(activity, Mother.FIRST_NAME,
Mother.LAST_NAME, Mother.EMAIL,
_mockEmployeeRepository);
activity.Execute_Accessor(null);
}
}
}
private void SetActivityProperties(StoreNewAcmeEmployee activity, string
firstName, string lastName,
string email, IEmployeeRepository
employeeRepo)
{
activity.FirstName = firstName;
activity.LastName = lastName;
activity.Email = email;
activity.EmployeeDataStore = employeeRepo;//注入被Mock对象
}
}
}
- ››单元格被选中就触发宏的运行的实现方法
- ››WF 4.0 beta1中的跟踪机制
- ››WF 4.0的建模风格:顺序和Flowchart
- ››WF4.0 Beta1之旅(5):规则引擎的变化
- ››WF 4.0 beta1活动概览(1):Procedural
- ››WF4.0 Beta1之旅(4):Bookmark的使用
- ››WF4.0 Beta1之旅:基本介绍
- ››WF4.0 Beta1之旅(2):异常处理
- ››WF4.0 Beta1之旅(3):全新的FlowChart
- ››WF 应用场景指南: SharePoint 与工作流(上)
- ››WF 应用场景指南: 展现流(Presentation Flow)
- ››WF单元测试系列1:测试基本的Activity
更多精彩
赞助商链接