तो मुझे यह अच्छा छोटा एमवीवीएम समाधान मिला है, और चीजें बहुत अच्छी काम करती हैं। मेरे पास हेडर बार के लिए एक व्यू मॉडल है जो एप्लिकेशन की स्थिति के आधार पर आइकन को एडजस्ट करता है, आदि। मैंने स्वीकृति परीक्षण किया है, दृश्य मॉडल बहुत अच्छा काम करता है।पैक यूआरएल और यूनिट परीक्षण। मेरे पर्यावरण के साथ समस्या?
तो मैं इस दृश्य मॉडल के व्यवहार इकाई परीक्षण करना चाहता हूं। मैं अपना यूनिट परीक्षण प्रोजेक्ट बनाता हूं, दृश्य मॉडल के लिए एक नया यूनिट परीक्षण जोड़ता हूं, और एक साधारण धूम्रपान परीक्षण लिखता हूं। (यानी मजाकित निर्भरताओं को देखते हुए, वर्ग तत्काल होगा)।
बैम, कोई
हालांकि, वर्ग ठीक काम करता है जब सामान्य रूप से भाग गया। देखने पर, मेरी त्रुटि इस प्रकार है:
TestInitialize threw exception: System.UriFormatException: Invalid URI: Invalid port specified.
तो कॉल स्टैक मैं निष्कर्ष है कि मेरी पैक URL लोड करने के लिए संसाधन धाराओं त्रुटियों लात होते हैं इस्तेमाल किया पर पहुंचने के बाद।
pack://application:,,,/Operations.Shell;component/Media/Images/User_Normal.png
(नोट: Operations.Shell
विधानसभा नाम है, /Media/Images/User_Normal.png
छवि पथ/नाम है, और इस पैक यूआरएल व्यवहार में काम करता है।)
पैक यूआरएल मैं के लिए है है मेरा User_Normal.png, फ़ाइल मौजूद है, संसाधन ठीक से असेंबली में पैक किया गया है (परावर्तक के साथ चेक किया गया)।
समस्या System.Uri
कक्षा से उत्पन्न होती है जो पैक यूआरएल की व्याख्या करने में सक्षम नहीं है। यह वह जगह है जहां मैं खो रहा हूं। यह परीक्षण की सीमाओं में क्यों काम नहीं करेगा। मैं सभी WPF विधानसभाओं अपने परीक्षण परियोजना में संदर्भित किया है:
- WindowsBase
- PresentationCore
- PresentationFramework
- System.Xaml
क्या मुझे याद आ रही?
अद्यतन
ठीक है ताकि मूल समस्या यह है कि UriHandler पैक यूआरएल के लिए पंजीकृत नहीं किया गया था। (जूलियन लेबोस्क्वेन के लिए धन्यवाद) अब यह तय है कि इसमें अभी भी समस्याएं हैं।
TestInitialize threw exception: System.NotSupportedException: The URI prefix is not recognized.
System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) System.Net.WebRequest.Create(Uri requestUri) MS.Internal.WpfWebRequestHelper.CreateRequest(Uri uri) System.IO.Packaging.PackWebRequest.GetRequest(Boolean allowPseudoRequest) System.IO.Packaging.PackWebRequest.GetResponse() MS.Internal.WpfWebRequestHelper.GetResponse(WebRequest request) System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream(Uri uri, Stream stream, BitmapCacheOption cacheOption, Guid& clsId, Boolean& isOriginalWritable, Stream& uriStream, UnmanagedMemoryStream& unmanagedMemoryStream, SafeFileHandle& safeFilehandle) System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache) System.Windows.Media.Imaging.BitmapImage.FinalizeCreation() System.Windows.Media.Imaging.BitmapImage.EndInit() System.Windows.Media.Imaging.BitmapImage..ctor(Uri uriSource, RequestCachePolicy uriCachePolicy) System.Windows.Media.Imaging.BitmapImage..ctor(Uri uriSource) MyFramework.Resources.b__1(Uri u) MyFramework.Resources.ResourceType`1.Load(String path) Operations.Shell.AppShell.ViewModels.HeaderViewModel..ctor(IEventAggregator eventAggregator, ISecurityService securityService) Tests.Shell.AppShell.TestHeaderViewModel.TestInitialize()
ऐसा लग रहा है पैक यूआरएल के वेब आधारित एक विधानसभा पैक यूआरएल के लिए कुछ करने के लिए हल करने की कोशिश कर रहा? ऐसा लगता है कि हैंडलर का अनुरोध गलत है? या क्या मैं कुछ न कुछ भूल रहा हूं?
@ डाउनवॉटर, क्या आपके पास कोई कारण है? – Aren