Настройка Mock для возврата того же объекта, который я отправляю на него? - PullRequest
4 голосов
/ 14 января 2012

Я хочу проверить код:

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");

Но в этом случае мой тест упал - потому что результат. Phone.Name был убран моим издевательством.

Как я могу настроить макет, чтобы просто дать мне тот же объект, который я ему даю.

1 Ответ

11 голосов
/ 14 января 2012
entityInitMock.Setup(x => x.FillViewModel(It.IsAny<PhoneViewModel>()))
    .Returns((PhoneViewModel m) => m);

Moq QuickStart - отличный справочник для похожих вопросов.

...