Ваш метод не имеет обратных вызовов, поэтому нет причин для его использования .CallBack(). Вы можете просто вернуть Task с нужными значениями, используя .Returns()и Task.FromResult , например:
MyType someValue=...;
mock.Setup(arg=>arg.DoSomethingAsync())
.Returns(Task.FromResult(someValue));
Обновление 2014-06-22
Moq 4.2 имеет два новых метода расширения, чтобы помочь с этим.
mock.Setup(arg=>arg.DoSomethingAsync())
.ReturnsAsync(someValue);
mock.Setup(arg=>arg.DoSomethingAsync())
.ThrowsAsync(new InvalidOperationException());
Обновление 2016-05-05
Как упоминает Сет Флауэрс в другом ответе , ReturnsAsyncдоступно только для методов, которые возвращают a Task<T>. Для методов, которые возвращают только Задачу,
.Returns(Task.FromResult(default(object)))
может быть использован.
Как показано в этом ответе , в .NET 4.6 это упрощается .Returns(Task.CompletedTask);, например:
mock.Setup(arg=>arg.DoSomethingAsync())
.Returns(Task.CompletedTask);