Z Moq, czy ważne jest, aby mieć więcej niż jeden argument dopasowania?Wiele Moq It.Is <string>() Dopasowanie Argumenty
It.Is<string>()
W tym przykładzie chcę mockMembershipService wrócić inną ProviderUserKey w zależności od użytkownika dostarczonym.
mockMembershipService.Setup(
x => x.GetUser(
It.Is<string>(
s => s.Contains("Joe")))
.ProviderUserKey)
.Returns("1234abcd");
mockMembershipService.Setup(
x => x.GetUser(
It.Is<string>(
s => s.Contains("Tracy")))
.ProviderUserKey)
.Returns("5678efgh");
SetUp domyślnie przyjmuje drugie oświadczenie zamiast oceniać każdą z nich na podstawie własnych zalet.
Spróbuję tego krótko, obejrzałem ten film http://thethoughtfulcoder.com/blog/52/Moq-Use-Setup-arguments-parameters-in-the-Returns-of-a-edched-function podczas dodawania odpowiedź, która robi coś podobnego –
powyższy kod nie skompiluje, narzeka na Security.MembershipUser nie zawiera odniesienia do zwrotów, a także o Użytkowniku nie zawierającym definicji dla ProviderUserKey –
Powinieneś odwołać się do zespołu odpowiadającego Security.MembershipUser, jak sądzę. Lub możesz wstrzyknąć zależność dla tworzenia użytkowników dla Ciebie w usłudze MembershipService –