Con Moq, ¿es válido tener más de un argumento coincidente?Multiple Moq It.Is <string>() Argumentos coincidentes
It.Is<string>()
En este ejemplo quiero que el mockMembershipService para devolver una ProviderUserKey diferente dependiendo del usuario que se suministra.
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");
La configuración por defecto es la segunda sentencia en lugar de evaluar cada uno por sus propios méritos.
Lo intentaré en breve, estaba viendo este video http://thethoughtfulcoder.com/blog/52/Moq-Use-Setup-arguments-parameters-in-the-Returns-of-amounted-function mientras agregaba su respuesta que hace algo similar –
el código anterior no compila se queja de Security.MembershipUser no contiene una referencia para devoluciones y también sobre User que no contiene ninguna definición para ProviderUserKey –
Debe hacer referencia al ensamblado que contiene Security.MembershipUser, supongo. O puede inyectar una dependencia para crear usuarios para usted en su MembershipService –