6 votes

Configurer Mock pour qu'il renvoie le même objet que celui que je lui envoie ?

Je souhaite tester un code :

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

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

Je souhaite également configurer FillViewModel pour qu'il renvoie le même objet que celui que je lui donne.

Mon test :

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

 var result = TestedInstance.FillClientCreateViewModel(CreateViewModel);

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

Mais dans ce cas, mon test a échoué - parce que result.Phone.Name a été nettoyé par mon mock.

Comment puis-je configurer l'objet fictif pour qu'il me donne le même objet que celui que je lui donne.

18voto

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

En Moq QuickStart est une excellente référence pour des questions similaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X