मैं इस वेबएपीआई परियोजना पर काम कर रहा हूं और मुझे इसके लिए यूनिट परीक्षण बनाने की आवश्यकता है। परियोजना का आधार वीएस 2010 का उपयोग करके बनाया गया था, और उसके बाद एक वेबएपी मॉड्यूल जोड़ा गया था।सी # वेबएपी यूनिट परीक्षण और मॉकिंग नियंत्रक
नियंत्रक की कार्यप्रणाली परीक्षण/मजाक करने के तरीके में थोड़ी सी हो रही है। मैं xUnit और Moq का उपयोग कर रहा हूं, लेकिन उन दोनों के साथ रहना बिल्कुल जरूरी नहीं है।
आवेदन डेटाबेस का उपयोग से निपटने के लिए विशिष्ट वस्तुओं का उपयोग करता है, तो मैं controllerObject है और उसके contructor DataAccessObject
मैं नियंत्रक/dataaccess जोड़ी मजाक के साथ समस्या हो रही है की आवश्यकता है। पहला टेस्ट जिसे मैं चलाने की कोशिश कर रहा हूं वह GetAllFromDataBase है, लेकिन मुझे वास्तव में यह नहीं करना है कि इसे कैसे किया जाए।
संपादित करें:
मैं क्या चुओंग Le मुझसे कहा था और पूरे अब बढ़ रहा है था, मैं सच में यह apreciate। लेकिन मैं एक और समस्या में फंस गया। एपीआई तक पहुंचने के लिए, एक उपयोगकर्ता नाम/पासवर्ड जोड़ी है और मेरा नियंत्रक Thread.CurrentPrincipal.Identity.Name का उपयोग करता है; मुझे लगता है कि मुझे लगता है कि मुझे इस मूल्य को पूरी तरह से काम करने के लिए सेट करना होगा।
इसके अलावा valueServiceMock.Setup (service => service.GetValues ()) । पुनर्नवीनीकरण (नया [] {"value1", "value2"});
काम नहीं कर रहा प्रतीत होता है। चूंकि कोड डेटाबेस के लिए पहुंचने का प्रयास करता है, और कुछ भी नहीं मिलता है क्योंकि इसे
आप नियंत्रक नकली नहीं करना चाहिए, आपका उपहास होगा सेवाओं को नियंत्रक की जरूरत है। यदि आप नियंत्रक का मज़ाक उड़ा रहे थे, तो आप नियंत्रक का परीक्षण नहीं करेंगे। यह पूरा मुद्दा है। इस पोस्ट पर एक नज़र डालें: http://www.peterprovost.org//blog/2012/06/16/unit-testing-asp-dot-net-web-api/ – tugberk
क्या आपने जांच की है कि आप मॉक ऑब्जेक्ट को पास करते हैं इस तरह के निर्माता: var नियंत्रक = नए मूल्य नियंत्रक (valueServiceMock.Object); –