2012-05-28 2 views
22

È possibile utilizzare Moq per dire che un metodo accetta una stringa che inizia con "ABC" per esempio.Utilizzo di Moq.It.IsAny per testare una stringa inizia con qualcosa

Come esempio qualcosa di simile:

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

che sogliono compilazione ma si spera che illustra il mio punto

risposta

40

prova:

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

si può vedere un altro esempio di It.Is:

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

che viene dalla documentazione Moq: http://code.google.com/p/moq/wiki/QuickStart

+0

sì che io uso per tutto il tempo – eyossi

+0

Grazie, che ha funzionato perfettamente – Jon

+0

quale stringa che verifica la presenza di inizia con? qual è l'input? – Peru

4

Provare a utilizzare:

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