में कनवर्ट करना मैं सिंक्रोनस एएसपीनेट कोड के शरीर को .NET 4.5 और नया async वाक्यविन्यास में परिवर्तित करने पर काम कर रहा हूं। अपने परीक्षण कोड के सभी फिर से लिखा जाना हैसिंक्रोनस Moq mocks को async
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123)).Returns(retVal);
जब मैं async Task<Foo> DoSomething()
को Foo DoSomething()
से DoSomething के हस्ताक्षर कन्वर्ट,:
मैं ऐसा दिखता है जैसे परीक्षण कोड का एक बहुत कुछ है। मेरे वर्तमान वैकल्पिक हल की तरह कुछ करने के लिए मूल कोड में परिवर्तित करने के लिए है:
var retVal = new Foo(bar,baz);
_myMock.Setup(x => x.DoSomething(123))
.Returns(new Task<Foo>(()=>retVal));
यह नहीं है एक विशेष रूप से कठिन बदलना है, लेकिन यह कठिन है जब मैं परीक्षण अद्यतन करने की आवश्यकता है कि हजारों की है।
मैंने उस फॉर्म में से कुछ करने के लिए रिटर्न्सएसिंक नामक एक विस्तार विधि बनाने का प्रयास किया, लेकिन मेरे पास कुछ प्रकार के अनुमानों के मुद्दे थे जो मैं काफी कम नहीं कर सका। क्या इस तरह के नकली को एसिंक विधि को बेहतर तरीके से संभालने के लिए एक मानक या आसान तरीका है?