मैं इसे अपने कन्स्ट्रक्टर को कॉल करके एक विश्वसनीय सेवा/अभिनेता का परीक्षण नहीं कर सकता और फिर इसकी विधियों का परीक्षण कर सकता हूं। var testService = new SomeService();
एक NullReferenceException फेंकता है। तो मैं तैनात सेवा के साथ क्या कर सकता हूं ..सेवा फैब्रिक यूनिट परीक्षण और निर्भरता इंजेक्शन
मैं समझता हूं कि तैनात एसएफ विश्वसनीय सेवाएं/अभिनेता मानक नहीं हैं .NET कक्षाएं, और तैनात एस/ए की यूनिट परीक्षण शायद एक अजीब विचार है।
वैसे भी मैं इसे आज़माने की कोशिश कर रहा हूं।
उदाहरण के लिए। मैंने परीक्षण की तुलना में केवल एक सेवा तैनात की है, मैंने प्रॉक्सी ऑब्जेक्ट बनाया है और सेवा की इनपुट कतार में जोड़ा गया आइटम है। तो मुझे उस इनपुट कतार गणना = 1. पर जोर देना होगा और यह काम करता है अगर मैंने अभी सेवा को तैनात किया है और कोई अन्य ग्राहक/सेवाएं/अभिनेता ने इसकी इनपुट कतार का उपयोग नहीं किया है। लेकिन अगली बार यह परीक्षण असफल हो जाएगा कि समस्या है। मुझे सेवा को अन्य उपभोक्ताओं के साथ संचालन रोकने, इसे कतार छोड़ने और परीक्षण करने की आवश्यकता है। इस उद्देश्य के लिए मैं कुछ टेस्टमोड प्रॉपर्टी और कुछ तरीकों जैसे प्रोपेरियोफोर्स्ट/टेस्टिंग को तैयार कर सकता हूं और परीक्षण से पहले और बाद में परीक्षण क्लाइंट से उन्हें कॉल कर सकता हूं।
क्या ऐसा करना एक बुरा विचार है। शायद यूनिट परीक्षण एसएफ के लिए कुछ दिशानिर्देश हैं? धन्यवाद।
अद्यतन:
Service Fabric Web Reference Application example की जांच करते समय मैं इस TODO स्ट्रिंग पाया है:
/// TODO: Temporary property-injection for an IServiceProxyWrapper until constructor injection is available.
यह मतलब यह है कि एस एफ सेवाएं यह डि समर्थन में सुधार होगा? अभिनेताओं के बारे में क्या?
कन्स्ट्रक्टर निर्भरता इंजेक्शन वास्तव में अभिनेताओं में उपलब्ध है! जब आप अपने अभिनेता के प्रकार को पंजीकृत करते हैं, तो आप एक "फैक्ट्री" भी पंजीकृत कर सकते हैं जो वास्तव में सिर्फ एक Func <> जहां आप अपना अभिनेता वर्ग उदाहरण बनाते हैं, जो आपको अपने अभिनेता के तत्काल पर नियंत्रण देता है ताकि आप वहां से निर्भरता इंजेक्ट कर सकें। सेवाओं में आप पहले से ही ऐसा कर सकते हैं, पार्टी क्लस्टर नमूना में हम इसे कैसे करते हैं: https://github.com/Azure-Samples/service-fabric-dotnet-management-party-cluster/tree/master/PartyCluster/ क्लस्टर सेवा –
मैंने एकता के साथ निर्भरता इंजेक्शन करने पर एक उत्तर लिखा: http://stackoverflow.com/questions/30384780/azure-service-fabric-actor- निर्भरता- इंजेक्शन /35900027#35900027 –
@VaclavTurecek आपका लिंक टूटा हुआ है – Dismissile