Использование Moq.It.IsAny для проверки строки начинается с чего-то
Можно ли использовать Moq, чтобы сказать, что метод принимает строку, которая начинается с "ABC", например.
В качестве примера можно сделать следующее:
logger.Verify(x => x.WriteData(Moq.It.IsAny<string>().StartsWith("ABC")), Times.Exactly(3));
Это не скомпилируется, но, надеюсь, это иллюстрирует мою точку
Ответы
Ответ 1
попробовать:
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: http://code.google.com/p/moq/wiki/QuickStart
Ответ 2
Попробуйте использовать:
Moq.It.Is<string>(x => x.StartsWith("ABC"))