我正在将同步 asp.net 代码的主体转换为 .net 4.5 和新的异步语法。
我有很多看起来像的测试代码:
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123)).Returns(retVal);
当我将 DoSomething 的签名从 转换为 时Foo DoSomething()
,async Task<Foo> DoSomething()
我的所有测试代码都必须重写。我目前的解决方法是将原始代码转换为:
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123))
.Returns(new Task<Foo>(()=>retVal));
这不是一个特别难的转换,但是当我有数千个需要更新的测试时,它很乏味。
我尝试制作一个名为 ReturnsAsync 的扩展方法来执行一些这种形式的 m,但是我遇到了一些我无法完全确定的类型推断问题。是否有标准或更简单的方法来转换这种模拟以更好地处理异步方法?