मेरे पास वेबएपीआई एमवीसी प्रोजेक्ट में एक जटिल विधि है। यह उपयोगकर्ता प्रमाणीकरण के लिए दूरस्थ सर्वर को मारने सहित कई चीजें करता है। इसके परिणामों के आधार पर, यह या तो एक रीडायरेक्ट (एक पृष्ठ), एक स्ट्रिंग त्रुटि संदेश, या सभी प्रमाणीकरण बंदर-व्यवसाय का प्रतिनिधित्व करने वाली वस्तु देता है।[testMethod] से async को कैसे कॉल करें?
ब्राउज़र से कॉल होने पर यह बहुत अच्छा काम करता है। यह डीबग में भी ठीक काम करता है। मैं इसे एक रीडायरेक्ट भी लिख सकता हूं और उसे "मैन्युअल" कह सकता हूं, जो भी आवश्यक पैराम में गुजर रहा है।
जिस मुद्दे में मैं चल रहा हूं वह इसे एक परीक्षण प्रोजेक्ट वीएस से बुला रहा है जब मैंने वेबएपीआई प्रोजेक्ट बनाया था। मुझे संदेह है कि ऐसा इसलिए है क्योंकि सभी async
और await
की वजह से फेंक दिया गया है। जब यह इसमें जाता है, अंततः यह "वस्तु के उदाहरण के लिए सेट ऑब्जेक्ट" त्रुटि के साथ वापस आता है।
चूंकि यह किसी अन्य संदर्भ में काम करता है, मुझे लगता है कि ऐसा इसलिए है क्योंकि यह एक परीक्षण परियोजना के अंदर है और इसकी प्रतीक्षा की जानी चाहिए। क्या कोई मुझे इस पर कोई सलाह दे सकता है?
संपादित करें: बहुत विशिष्ट होना, इसे यहाँ कोड की दूसरी पंक्ति पर विफल रहने के है:
BoxConfig boxConfig = new BoxConfig(ClientID, ClientSecret, enterpriseID, prvt, JWTPublicKeyPass, JWTPublicKeyID);
BoxJWTAuth boxJWT = new BoxJWTAuth(boxConfig); //This is a JSON web token and is needed to authorize the enterprise level app user.
कोड संदर्भ:
यह Box.com एपीआई का लाभ है। BoxJWT कॉल एक JSON वेब टोकन बनाता है। मुझे नहीं पता कि प्रक्रिया में यह कहां विफल रहा है क्योंकि जब मैं इसके माध्यम से पता लगाता हूं, तो यह मुझे PEMReader.cs, आदि जैसी चीजों के लिए कोड नहीं दिखा सकता है (जिसे क्रिप्टो, उछाल वाले महल के साथ करना है)। लेकिन बहुत विशेष रूप से, त्रुटि संदेश विवरण का कहना है कि स्रोत Box.V2.JWTAuth.PEMPasswordFinder.GetPassword()
अभी तक आपका प्रश्न बहुत सार है। कृपया अपने कोड के एक [न्यूनतम, पूर्ण, और सत्यापन योग्य उदाहरण] (http://stackoverflow.com/help/mcve) शामिल करें। – Igor
डुप्लिकेट? http://stackoverflow.com/questions/36148778/testing-property-set-by-async-method/36148937#36148937 –
लगता है जैसे आपको अपनी विधि को छोटी इकाइयों में विभाजित करने और व्यक्तिगत रूप से उन इकाइयों में से प्रत्येक का परीक्षण करने की आवश्यकता है। –