1. ホーム
  2. c#

[解決済み] MoqのSetupSequence

2023-07-29 01:54:48

質問

を返すモックを作りたい。 0 を返し、その後 1 を返します。問題は、このメソッドが4回呼ばれた場合、私は書かなければならないことです。

mock.SetupSequence(x => x.GetNumber())
    .Returns(0)
    .Returns(1)
    .Returns(1)
    .Returns(1);

それ以外の場合、このメソッドはnullを返します。

最初の呼び出しの後、このメソッドは 1 ?

どのように解決するのですか?

特に派手さはありませんが、うまくいくと思います。

    var firstTime = true;

    mock.Setup(x => x.GetNumber())
        .Returns(()=>
                        {
                            if(!firstTime)
                                return 1;

                            firstTime = false;
                            return 0;
                        });