简体   繁体   English

Moq类的接口属性

[英]Moq an interface property of a class

Having the following: 具有以下内容:

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

I need to mock someFactory as well as Organization interface. 我需要模拟someFactory以及Organization接口。

I've tried this but contact comes back null. 我已经尝试过了,但联系方式返回了null。 I want to set contact to whatever and contact.Organization to anything but not null IOrganization: 我想将contact设置为what和contact.Organization,但不设置为null IOrganization:

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

You need to set up the method with the same parameters: 您需要使用相同的参数设置方法:

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

But replace the T's with the types of contact and page.id 但是将T替换为contact和page.id的类型

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM