0

私は自分の使用のためのWhenメソッドの使用方法を理解しようとしています。

When(Func<bool> condition);

ここにある別の投稿には、Whenメソッドの米国の一例があります

var mockedService = new Mock<IFormatProvider>();

mockedService.When(() => DateTime.Now.Hour < 12).Setup(x => x.GetFormat(typeof(string))).Returns(null);

私がやろうとしているのは、xという変数があります。XがNullでない場合にのみアクションを実行するように、Whenメソッドを使用したいと思います。

例えば

      mockedService.When(()=> !null x).Returns(x)
      or
      mockedService.When(condition => x).Returns(x);

上記のコード行は両方とも機能していません。syntexは正しくありません。それを正しく書く方法のアイデア。ありがとう

4

1 に答える 1

3

メソッドをセットアップして返す必要があります。

mockedService.When(() => null != x)
     .Setup(s => s.GetFormat(It.IsAny<Type>()))
     .Returns(x);

別の方法:

mockedService
     .Setup(s => s.GetFormat(It.Is<Type>(t => x != null)))
     .Returns(x);
于 2013-03-05T00:43:45.453 に答える