问题
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.
I've tried this but contact comes back null. I want to set contact to whatever and contact.Organization to anything but not null IOrganization:
var organizationMock = new Mock<IOrganization>();
ObjectFactoryMock.Setup(x => x.Create<IContact>()).Returns(new ContactFake{ Organization = organizationMock.Object });
回答1:
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
See https://github.com/Moq/moq4/wiki/Quickstart#matching-arguments
来源:https://stackoverflow.com/questions/35302816/moq-an-interface-property-of-a-class