首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rhino框架测试Dynamics CRM工作流

使用Rhino框架测试Dynamics CRM工作流
EN

Stack Overflow用户
提问于 2015-06-12 17:43:02
回答 1查看 195关注 0票数 0

谁可以为我提供单元测试与Rhino框架的工作流代码样本。更具体地说,我似乎不能存根作为workflow.execute方法的参数的CodeActivityContext对象。我对Rhino还很陌生,这对我也没什么帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-06-13 00:19:05

我推荐一种不同于大多数博客和帖子的单元测试方法。

我建议获取IOrganizationService和执行函数所需的任何数据或标识符。然后,我建议将执行繁重任务的函数(逻辑、CRUD操作等)在一个单独的班级中。这样,您只需创建IOrganizationService的模拟。下面是一个例子:

代码语言:javascript
复制
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中获取所需内容的示例:

代码语言:javascript
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30800002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档