2012-05-28 9 views
22

¿Es posible usar Moq para decir que un método acepta una cadena que comienza con "ABC" por ejemplo.El uso de Moq.It.IsAny para probar una cadena comienza con algo

Como ejemplo algo como esto:

logger.Verify(x => x.WriteData(Moq.It.IsAny<string>().StartsWith("ABC")), Times.Exactly(3)); 

Eso suele compilar pero esperemos que ilustra mi punto

Respuesta

40

intento:

logger.Verify(x => x.WriteData(Moq.It.Is<string>(str => str.StartsWith("ABC"))), Times.Exactly(3)); 

se puede ver otro ejemplo de It.Is:

// matching Func<int>, lazy evaluated 
mock.Setup(foo => foo.Add(It.Is<int>(i => i % 2 == 0))).Returns(true); 

que proviene de la documentación Moq: http://code.google.com/p/moq/wiki/QuickStart

+0

sí lo utilice que todo el tiempo – eyossi

+0

Gracias, que funcionó a la perfección – Jon

+0

qué cadena se comprobará comienza con? ¿Cuál es la entrada? – Peru

4

Trate de usar:

Moq.It.Is<string>(x => x.StartsWith("ABC")) 
Cuestiones relacionadas