असल में, यदि मैं एमवीवीएम का उपयोग करता हूं और सार्वजनिक आईसीएमंड्स का पर्दाफाश करता हूं, तो क्या मेरे प्रतिनिधि सार्वजनिक या निजी हो सकते हैं?डब्ल्यूपीएफ एमवीवीएम - यूनिट एक कमांड का परीक्षण - निजी बनाम सार्वजनिक तरीकों?
उत्तर
मैं उन्हें निजी बनाना होगा - वे आपकी कक्षा के public interface का हिस्सा नहीं हैं, यही सार्वजनिक आईसीओएमएंड गुणों के लिए है।
व्यक्तिगत रूप से, मैं निजी तरीकों से जाऊंगा और मैं आपको बताउंगा क्यों। आप ICommand
का पर्दाफाश कर रहे हैं, जो मेरे लिए कहता है कि उपभोग करने वाले दृश्य को निष्पादन कॉल करने से पहले CanExecute को कॉल करना चाहिए। यदि वे नहीं करते हैं, तो वे एपीआई के खिलाफ जा रहे हैं और खुद को पैर में शूटिंग कर रहे हैं और उस समय यह आपके हाथों से बाहर है। जैसे किसी ने किसी महत्वपूर्ण निजी चर को शून्य पर सेट करने के लिए प्रतिबिंब का उपयोग किया और इस वजह से अपने वर्ग के डिजाइन को तोड़ दिया ... खुद को पैर में शूटिंग। तो सदस्यों को निजी क्यों बनाते हैं? क्योंकि उन सदस्यों को बेनकाब करने की कोई आवश्यकता नहीं है जिन्हें सीधे नहीं कहा जाना चाहिए।
मूल रूप से, जब आप इकाई के सदस्यों तुम इतनी अलग-अलग मत करो का परीक्षण, तो आप ऐसा रास्ता एपीआई का इरादा रखता सदस्यों के लिए निष्पादित करने के लिए में है। तो, क्या तुम सच में सदस्यों का परीक्षण कर रहे है, लेकिन इसके अलावा आप आदेश है, जो फिर से मतलब है कि वे की विशेष क्रम में एक जोड़ी में परीक्षण किया जाना चाहिए परीक्षण कर रहे हैं:
if (CanExecute)
{
Execute;
}
काफी एक संपादन का परीक्षण - या मैं बस कुछ याद किया ? :) –
@ चतुरता: कभी-कभी मैं रताता हूं। मैंने यूनिट परीक्षण की बात आने से पहले कुछ ऐसा पूछा है और किसी ने मुझे बताया है कि अगर लोग एपीआई के खिलाफ जाते हैं तो यह उन पर है। आप किसी को उचित पुस्तकालय या ऐप को नष्ट करने से बचाने के लिए अभी तक जा सकते हैं। –
मेरे पास वृद्धि, घटाने वाले बटन और स्लाइडर शो मान के कुछ सरल नियंत्रण के लिए एमवीवीएम है।
आप परीक्षण ICommand और INotifyPropertyChanged है, तो आप unittest की तरह कर सकते हैं:
[TestMethod]
public void TestViewModel3()
{
int min = -10;
int max = 10000;
int initVal = 50;
bool initState = false;
ToglledSliderModel model = new ToglledSliderModel(initState, initVal, min, max);
ToglledSliderViewModel viewModel = new ToglledSliderViewModel();
viewModel.Model = model;
int status = 567;
viewModel.PropertyChanged += delegate
{
status = 234;
};
for (int i = 1; i < 100; i++)
{
status = 567;
ICommand ic = viewModel.IncreaseValue;
ic.Execute(this);
Thread.Sleep(2);
Assert.AreEqual(status, 234);
Assert.AreEqual(model.SliderValue, initVal + i);
}
}
आप देख सकते हैं, मैं INotifyPropertyChanged व्यवहार और ICommand को क्रियान्वित करने
- 1. डब्ल्यूपीएफ एमवीवीएम और यूनिट परीक्षण
- 2. डब्ल्यूपीएफ एमवीवीएम यूनिट टेस्ट?
- 3. डब्ल्यूपीएफ एमवीवीएम लाइट यूनिट परीक्षण व्यू मॉडल्स
- 4. सार्वजनिक तरीकों से निजी तरीके
- 5. सी # - निजी तरीकों के लिए वीएस 2010 यूनिट परीक्षण
- 6. डब्ल्यूपीएफ एमवीवीएम कमांड बनाम इवेंट हैंडलर का उपयोग
- 7. ब्लॉक बनाम निजी तरीकों?
- 8. यूनिट परीक्षण निजी कक्षाएं
- 9. डब्ल्यूपीएफ यूनिट परीक्षण ढांचा
- 10. लाभ और तरीकों बनाम सार्वजनिक चर मिल
- 11. जूनिट और जावा: गैर-सार्वजनिक तरीकों का परीक्षण
- 12. यूनिट परीक्षण निजी विधियों के लिए लागू
- 13. एमवीवीएम डब्ल्यूपीएफ
- 14. जावा में निजी तरीकों का परीक्षण कैसे करना चाहिए?
- 15. यूनिट परीक्षण निजी सेटर प्रश्न (सी #)
- 16. मुझे सार्वजनिक/निजी/स्थिर तरीकों का उपयोग कब करना चाहिए?
- 17. यूआई परीक्षण बनाम यूनिट परीक्षण
- 18. एमवीवीएम, डब्ल्यूपीएफ: एक कंबोबॉक्स
- 19. एक एमवीवीएम डब्ल्यूपीएफ ऐप
- 20. एकीकरण बनाम यूनिट परीक्षण
- 21. डब्ल्यूपीएफ एमवीवीएम - एक आइटम कंट्रोल
- 22. डब्ल्यूपीएफ एमवीवीएम
- 23. एमवीवीएम पागलपन: कमांड
- 24. इकाई परीक्षण और वस्तुओं का दायरा - निजी/आंतरिक तरीकों आदि का परीक्षण कैसे करें?
- 25. डब्ल्यूपीएफ - एमवीवीएम
- 26. कैश-कंट्रोल में निजी बनाम सार्वजनिक
- 27. डब्ल्यूपीएफ एमवीवीएम
- 28. कक्षा विशेषता घोषणा: निजी बनाम सार्वजनिक
- 29. यूनिट परीक्षण पर एक विंडोज़ फॉर्म एप्लिकेशन
- 30. आप सार्वजनिक/निजी डीएसए कीपैयर का परीक्षण कैसे करते हैं?
+1 सार्वजनिक इंटरफ़ेस का परीक्षण करें। –
मेरी कक्षा में इंटरफेस नहीं है, हालांकि यह सिर्फ एक वर्ग है। – michael
@michael कक्षा में 'सार्वजनिक' विधियों और गुणों का संग्रह माना जाता है कि कक्षा का "इंटरफ़ेस", जैसा कि उपभोक्ता उस वर्ग के साथ इंटरफेस करते हैं। – dlev