Moq an interface property of a class

寵の児 提交于 2019-12-11 13:36:58

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!