2012-05-28 55 views
22

是否有可能使用Moq来说一个方法接受一个以“ABC”开头的字符串。使用Moq.It.IsAny来测试一个字符串开头的东西

作为一个例子是这样的:

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

这不会编译,但希望这说明我的观点

回答

40

尝试:

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

你可以看到It.Is的另一个例子:

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

是来自起订量的文档:http://code.google.com/p/moq/wiki/QuickStart

+0

是啊,我使用所有的时间 – eyossi

+0

谢谢,这工作完全 – Jon

+0

它将检查开始,该字符串?什么是输入? – Peru

4

尝试使用:

Moq.It.Is<string>(x => x.StartsWith("ABC")) 
相关问题