38

たとえば、メソッドが「ABC」で始まる文字列を受け入れるとMoqを使用することは可能ですか。

例として、次のようなものがあります。

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 に答える