たとえば、メソッドが「ABC」で始まる文字列を受け入れるとMoqを使用することは可能ですか。
例として、次のようなものがあります。
logger.Verify(x => x.WriteData(Moq.It.IsAny<string>().StartsWith("ABC")), Times.Exactly(3));
それはコンパイルされませんが、うまくいけばそれは私の要点を示しています
たとえば、メソッドが「ABC」で始まる文字列を受け入れるとMoqを使用することは可能ですか。
例として、次のようなものがあります。
logger.Verify(x => x.WriteData(Moq.It.IsAny<string>().StartsWith("ABC")), Times.Exactly(3));
それはコンパイルされませんが、うまくいけばそれは私の要点を示しています
試す:
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
使用してみてください:
Moq.It.Is<string>(x => x.StartsWith("ABC"))