プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2020/06/19

[C#] 非同期メソッドのモック

event_note2020/06/19 5:23

非同期メソッド (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));