我正在尝试从另一个模拟类型返回一个模拟类型,我已经取得了一些进展,但现在被卡住了(接口名称已简化)
考虑接口IFoo和IFooItem。调用IFoo类型的Add方法,将IBar传递给它,会返回一个IFooItem。
interface IFoo
{
IFooItem Add(IBar bar);
}
interface IFooItem
{
int fooItemId {get; set;}
}
我还有一个IFooRepository,我想使用Moq来模拟它,以便我可以模拟添加一个项目。
所以,
var mockFooRepository = new Mock<IFooRepository>();
mockFooRepository.Setup(m=> m.Add(It.IsAny<IBar>()))
.Returns(
// What is the correct way to mock properties of a new IFooItem from
// mocked properties of IBar
// essentially a new mocked type of IFooItem that can read from IBar
// so IFooItem.Property = somevalue, IFooItem.Property2 = IBar.SomeProp
);
IFooItem.Property2
和IBar.SomeProp
总是相同的,那么就将它们设置为相同的值。 - bhamlin