谁可以为我提供单元测试与Rhino框架的工作流代码样本。更具体地说,我似乎不能存根作为workflow.execute方法的参数的CodeActivityContext对象。我对Rhino还很陌生,这对我也没什么帮助。
发布于 2015-06-13 00:19:05
我推荐一种不同于大多数博客和帖子的单元测试方法。
我建议获取IOrganizationService和执行函数所需的任何数据或标识符。然后,我建议将执行繁重任务的函数(逻辑、CRUD操作等)在一个单独的班级中。这样,您只需创建IOrganizationService的模拟。下面是一个例子:
public class AccountContactManager
{
private IOrganizationService _service;
public AccountContactManager(IOrganizationService service)
{
_service = service;
}
public void UpdateAccountContacts(Guid accountId)
{
this._service.Execute();//do something here with the service
}
}下面是一个如何从CodeActivityContext中获取所需内容的示例:
var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
var recordId = context.PrimaryEntityId;
var preImage = context.PreEntityImages["PreImage"];
var postImage = context.PostEntityImages["PostImage"];
var factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var organizationService = result.Factory.CreateOrganizationService(context.UserId);
var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
var userId = context.UserId;
var record = context.InputParameters["Target"];
if (record is Entity)
{
var entityRecord = (Entity)record;
}
else
{
var recordReference = (EntityReference)record;
}https://stackoverflow.com/questions/30800002
复制相似问题