Pracuję nad konwertowaniem treści synchronicznego kodu asp.net do .net 4.5 i nowej składni asynchronicznej.Konwersja synchronicznych makr Moq na asynchroniczne
mam dużo kodu testu, który wygląda tak:
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123)).Returns(retVal);
Kiedy przekonwertować podpis doSomething z Foo DoSomething()
do async Task<Foo> DoSomething()
, wszystkie moje kodu testu musi być przepisany. Mój obecny obejście jest przekształcenie oryginalnego kodu coś jak:
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123))
.Returns(new Task<Foo>(()=>retVal));
Nie jest to szczególnie trudne przekształcić, ale jest to uciążliwe, gdy mam tysiące testów, które muszą być aktualizowane.
Próbowałem utworzyć metodę rozszerzenia o nazwie ReturnsAsync, aby wykonać niektóre z tych formularzy m, ale miałem pewne problemy z typem interferencji, których nie mogłem w pełni wyjaśnić. Czy istnieje standardowy lub łatwiejszy sposób na konwersję tego rodzaju prób, aby lepiej obsługiwać metodę asynchroniczną?