Estoy trabajando para convertir un cuerpo de código asp.net sincrónico en .NET 4.5 y la nueva sintaxis asíncrona.Conversión de simulaciones de Moq sincrónicas en async
tengo una gran cantidad de código de prueba que se parece a:
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123)).Returns(retVal);
al convertir la firma de HacerAlgo de Foo DoSomething()
a async Task<Foo> DoSomething()
, toda mi código de prueba tiene que ser reescrito. Mi solución actual es la de convertir el código original a algo como:
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123))
.Returns(new Task<Foo>(()=>retVal));
Esto no es un particular transformar duro, pero es tedioso cuando tengo miles de pruebas que necesitan ser actualizados.
Intenté hacer un método de extensión llamado ReturnsAsync para hacer algo de esa forma m, pero estaba teniendo algunos problemas de tipo inferrence que no pude precisar. ¿Existe una forma estándar o más sencilla de convertir este tipo de simulacro para manejar mejor el método asincrónico?