安装模拟返回我发送给它的同一个对象?

时间:2012-01-14 00:13:39

标签: c# tdd moq

我想测试一些代码:

public ViewModel FillClientCreateViewModel(ViewModel model){
    model.Phone = new Phone { Name = "Test"};

    model.Phone = _entityInitializer.FillViewModel(model.Phone);
}

我还想设置FillViewModel以返回我给它的相同对象。

我的测试:

     entityInitMock.Setup(x => x.FillViewModel(It.IsAny<PhoneViewModel>())).Returns(It.IsAny<PhoneViewModel>());

 var result = TestedInstance.FillClientCreateViewModel(CreateViewModel);

 result.Phone.Name.ShouldBe("Test");

但在这种情况下,我的测试结果 - 因为result.Phone.Name被我的模拟器清理干净了。

我如何设置模拟只是给我相同的对象,我给它。

1 个答案:

答案 0 :(得分:11)

entityInitMock.Setup(x => x.FillViewModel(It.IsAny<PhoneViewModel>()))
    .Returns((PhoneViewModel m) => m);

Moq QuickStart是类似问题的绝佳参考。