¿Qué puede hacer que It.IsAny<string>()
devuelva nulo en cada llamada? ¿Soy incorrecto al asumir que está diseñado para devolver una cadena no nula?Moq - It.IsAny <string>() siempre devuelve nulo
Aquí está el uso - donde el método de inicio de sesión arroja una ArgumentNullException para un segundo argumento nulo (cadena de conexión). Asumí que It.IsAny<string>()
proporcionaría una cadena no nula, que omitiría la ArgumentNullException.
var mockApiHelper = new Mock<ApiHelper>();
mockApiHelper.Setup(m => m.Connect(It.IsAny<string>(),
It.IsAny<string>(),
It.IsAny<string>()));
var repositoryPlugin = new RepositoryPlugin(mockApiHelper.Object);
repositoryPlugin.Login(new CredentialsInfo(), It.IsAny<string>());
Assert.IsTrue(repositoryPlugin.LoggedIn,
"LoggedIn property should be true after the user logs in.");
Ah, ya veo. He agregado la prueba completa a la pregunta. Lo estoy usando tanto para mi simulacro, como para un objeto real. Pero parece que no está destinado para su uso con objetos reales. – Jeremy
@Jeremy: No, la idea es que transfiera valores reales (bueno, valores de muestra) a su código real. 'It.IsAny' está destinado a validar los valores pasados * de * su código real a sus simulacros. –
Lo tengo, así que lo he estado pensando como una técnica de generación de datos ... pero no es para eso. ¡Gracias! – Jeremy