मुझे एक विधि में लगातार कॉल पर विभिन्न मूल्यों को वापस करने के लिए एक Moq ऑब्जेक्ट मिलता है। यह इस विस्तार विधि द्वारा किया जाता है:विभिन्न परिणामों को लौटाना या लगातार कॉल से अपवाद फेंकना मोक मॉक
public static void ReturnsInOrder<T, TResult>(this ISetup<T, TResult> setup, params TResult[] results) where T : class
{
setup.Returns(new Queue<TResult>(results).Dequeue);
}
अब मैं एक अपवाद फेंकने के लिए कॉल में से एक चाहता हूं जबकि अन्य कुछ वापस कर दें। क्या किसी ने इसे पहले किया है?
तो मुझे क्या इस
mock.Setup(m => m.SomeMethod())
.Throws(new Exception());
mock.Setup(m => m.SomeMethod())
.Returns("ok");
तो पहले सेटअप ओवरराइट है और केवल दूसरे सेटअप बनी हुई है।
यह (बल्कि जटिल) समाधान के बाद से Moq SetupSequence विधि के लिए समर्थन हासिल है अब आवश्यक नहीं है। उदाहरण के लिए नीचे मेरा जवाब देखें। – nashwan