С 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 присваивает второй оператор, а не оценивает его по существу.