gpt4 book ai didi

c# - 单元测试代码事件工作流

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:33 26 4
gpt4 key购买 nike

我正在尝试为 CodeActivity 工作流编写单元测试。到目前为止我的测试只是

[TestMethod]
public void BusinessUnitTest()
{
WorkflowInvoker invoker = new WorkflowInvoker(new DespatchStockOrder());
invoker.Extensions.Add<ITracingService>(() => tracingService);
invoker.Extensions.Add<IWorkflowContext>(() => workflowContext);
invoker.Extensions.Add<IOrganizationServiceFactory>(() => factory);
IDictionary<string, object> outputs = invoker.Invoke();
}

这工作正常并运行工作流程。但是,当我在工作流程中点击这一行时,我得到了一个空引用。

// Create the context
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();

if (context == null)
{
throw new InvalidPluginExecutionException("Failed to retrieve workflow context.");
}

Entity entity = new Entity(context.PrimaryEntityName) //This line errors with PrimaryEntityName null
{
Id = context.PrimaryEntityId,
LogicalName = context.PrimaryEntityName
};

我的问题是如何在单元测试中获取具有值的 context.PrimaryEntityName

最佳答案

如果您手动构建上下文,则需要在 [TestMethod] 中填充 PrimaryEntityName。您可能应该进一步了解您的 workflowContext 测试对象是如何构造的。

[TestMethod]
public void BusinessUnitTest()
{
workflowContext.PrimaryEntityName = "Entity name";

WorkflowInvoker invoker = new WorkflowInvoker(new DespatchStockOrder());
invoker.Extensions.Add<ITracingService>(() => tracingService);
invoker.Extensions.Add<IWorkflowContext>(() => workflowContext);
invoker.Extensions.Add<IOrganizationServiceFactory>(() => factory);
IDictionary<string, object> outputs = invoker.Invoke();
}

关于c# - 单元测试代码事件工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37802289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com