【问题标题】:Setup Mock to return the same object, which I send to it?设置 Mock 以返回我发送给它的相同对象?
【发布时间】:2012-02-10 03:38:39
【问题描述】:

我想测试一些代码:

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 被我的模拟清理了。

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

【问题讨论】:

    标签: c# tdd moq


    【解决方案1】:
    entityInitMock.Setup(x => x.FillViewModel(It.IsAny<PhoneViewModel>()))
        .Returns((PhoneViewModel m) => m);
    

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多