Moq 接口 属性 of a class

Moq an interface property of a class

具有以下特征:

var contact = m_someFactory.Create<IContact>(contact, Page.ID);
var organization = contact.Organization;

我需要模拟 someFactory 和 Organization 接口。

我已经试过了,但联系人返回为空。我想将联系人设置为任何内容,将 contact.Organization 设置为任何内容,但不是 null IOrganization:

    var organizationMock = new Mock<IOrganization>();
    ObjectFactoryMock.Setup(x => x.Create<IContact>()).Returns(new ContactFake{ Organization = organizationMock.Object });

您需要使用相同的参数设置方法:

 ObjectFactoryMock.Setup(x => x.Create<IContact>(It.IsAny<T>,It.IsAny<T>)).Returns(new ContactFake{ Organization = organizationMock.Object });

但将 T 替换为联系人类型和 page.id

https://github.com/Moq/moq4/wiki/Quickstart#matching-arguments