Допустимо ли с Moq иметь более одного аргумента соответствия?
It.Is<string>()
В этом примере Я хочу, чтобы mockMembershipService возвращал другой ProviderUserKey в зависимости от указанного пользователя.
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 по умолчанию использует второй оператор, а не оценивает каждый по отдельности.