38

例如,是否可以使用 Moq 来表示方法接受以“ABC”开头的字符串。

作为一个例子是这样的:

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

那不会编译,但希望它能说明我的观点

4

2 回答 2

61

尝试:

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); 

来自 Moq 文档:https ://github.com/Moq/moq4/wiki/Quickstart

于 2012-05-28T09:03:44.567 回答
8

尝试使用:

Moq.It.Is<string>(x => x.StartsWith("ABC"))
于 2012-05-28T09:04:21.167 回答