非同期メソッド (async / await
) の戻り値は Task
なので、Moq
を使う場合にも Task
を返す必要があります。
この場合、モックでは Task.FromResult
を使って戻り値を返すようにします。
以下サンプルです。
非同期メソッドでない場合
sample = new Mock<ISample>();
sample.Setup(x => x.Hoge(It.IsAny<int>())).Returns(true);
非同期メソッドの場合
sample = new Mock<ISample>();
sample.Setup(x => x.HogeAsync(It.IsAny<int>())).Returns(Task.FromResult(true));