मैं एक एमवीसी 5 परियोजना में सिग्नलआर का उपयोग कर रहा हूं। मैं इस तरह नियंत्रक के भीतर कॉल कर रहा हूं:यूनिट परीक्षण के लिए नियंत्रक में सिग्नलआर हबकॉन्टेक्स्ट को कैसे नकल करना चाहिए?
private Microsoft.AspNet.SignalR.IHubContext blogHubContext = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<BlogHub>();
blogHubContext.Clients.All.addNewBlogToPage(RenderPartialViewToString("Blog", model));
मैं इकाई को इस नियंत्रक के भीतर कार्यों का परीक्षण करने का प्रयास कर रहा हूं। यूनिट परीक्षण ठीक काम कर रहे थे जब तक कि मैंने सिग्नलर कार्यक्षमता को जोड़ा नहीं। अब मैं हबकॉन्टेक्स्ट को नकल करने का तरीका जानने का प्रयास कर रहा हूं। मेरे पास 2 संभावनाएं हैं I
मैं सेटअप निर्माता में हब तो मैं की तरह कुछ है निम्नलिखित:
private Microsoft.AspNet.SignalR.IHubContext blogHubContext; public BlogController(Microsoft.AspNet.SignalR.IHubContext topicHub = null){ blogHubContext = (blogHub != null) ? blogHub : Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<BlogHub>(); }
तो मैं किसी भी तरह HubContext नकली और नियंत्रक को इसके माध्यम से भेज जब मैं इकाई में यह बना सकते हैं परीक्षा। अब तक मैं केवल इस यद्यपि है:
Mock<IHubContext> blogHub = new Mock<IHubContext>();
(नोट:। मैं सब कुछ सरल बनाया है चीजों में से केवल SignalR पक्ष पर ध्यान केंद्रित करने की भी नियंत्रक आदि में प्रयोग किया जाता खजाने कर रहे हैं)
वैकल्पिक रूप से, मैं हब को लपेटने के लिए एक और कक्षा बनाने के बारे में सोचा, और उसके बाद हब में कॉल करने के लिए बस इस से कॉल करें। यह मुझे अपने यूनिट परीक्षणों के लिए नकली करने के लिए बहुत आसान लगता है, लेकिन यह सुनिश्चित नहीं है कि यह एक अच्छा विचार है या नहीं।
दिशा-निर्देश की सराहना की। या दोनों स्वीकार्य तरीके आगे हैं? धन्यवाद।
मैं 1 विकल्प पसंद करते हैं, क्योंकि आप आवरण वर्ग का एक और अतिरिक्त परत है जो किसी भी कार्यक्षमता जोड़ने नहीं है की जरूरत नहीं है। –
@ एडी.Net धन्यवाद। उस स्थिति में, किसी भी विचार से मैं जिस कार्यक्षमता का उपयोग कर रहा हूं उसके लिए हब का मज़ाक लगाने के बारे में कैसे जा सकता हूं। मैं यह काम करने के लिए संघर्ष कर रहा हूं कि इसे कैसे किया जाए जिससे मुझे दूसरे विकल्प के बारे में सोचने का मौका मिला। – AndrewPolland
क्या आप सामान्य रूप से मजाक करने से परिचित हैं? सिग्नलर हब का मज़ाक लगाना ऐसा लगता है कि यह किसी और चीज का मज़ाक लगाने जैसा ही होगा। –