gpt4 book ai didi

c# - 如何使用 EntityCollection 初始化对象?

转载 作者:行者123 更新时间:2023-11-30 21:43:25 27 4
gpt4 key购买 nike

我需要我的一个模拟来返回一个专门初始化的对象。我当前的设置是:

_mockOrganizationService.Setup(
x => x.Retrieve("serviceappointment", It.IsAny<Guid>(), It.IsAny<ColumnSet>()))
.Returns(new ServiceAppointment());

但是,我不需要返回 new ServiceAppointment(),而是需要更多类似的东西:

new ServiceAppointment{new EntityCollection("resources")}...

被测方法执行:

var sa = serviceAppointment.GetAttributeValue<EntityCollection>("resources");

如何使用 EntityCollectionb 初始化 ServiceAppointment 以便我不会收到 NullReferenceException?

最佳答案

鉴于服务定义为

public interface IOrganizationService {
Entity Retrieve(string entityName, Guid id, ColumnSet columnSet);
}

并使用 this example从文档中,可以手动定义实体以在测试中使用。

// Instaniate a serviceappointment object
var serviceAppointment = new Entity("serviceappointment");
// Set the attributes you want for the test
serviceAppointment["resources"] = new EntityCollection();
// Create mock service
var _mockOrganizationService = new Mock<IOrganizationService>();
//Setup retrieval of entity
_mockOrganizationService
.Setup(x => x.Retrieve(serviceAppointment.LogicalName, It.IsAny<Guid>(), It.IsAny<ColumnSet>()))
.Returns(serviceAppointment);

var service = _mockOrganizationService.Object;

这应该允许被测方法能够调用

var sa = serviceAppointment.GetAttributeValue<EntityCollection>("resources");

假设 sa 是使用模拟服务检索的。

关于c# - 如何使用 EntityCollection 初始化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41724402/

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