के साथ एक्शनफिल्टर एट्रिब्यूट्स का परीक्षण करना मैं वर्तमान में एमएसपीसी को समझने की कोशिश कर रहा हूं, मुख्य रूप से (टी/बी) डीडी के नए तरीकों को सीखने के लिए जो तकनीक का उपयोग करने के लिए एक शिक्षित निर्णय लेने में सक्षम हो। पहले, मैंने ज्यादातर (केवल पढ़ने के लिए) मक के साथ अंतर्निहित एमएसटीएस्ट फ्रेमवर्क का उपयोग किया है, इसलिए बीडीडी मेरे लिए काफी नया है।एमएसपीसी
मैं एक एएसपी.नेट एमवीसी ऐप लिख रहा हूं, और मैं PRG को कार्यान्वित करना चाहता हूं। पिछली बार मैंने ऐसा किया था, मैंने ModelState
को TempData
के माध्यम से निर्यात और आयात करने के लिए एक्शन फ़िल्टर का उपयोग किया था, ताकि मैं RedirectResult
वापस कर सकूं और उपयोगकर्ता को दृश्य मिलने पर सत्यापन त्रुटियां तब भी होंगी।
क) ExportModelStateAttribute मैं अपने नियंत्रक के लिए परीक्षण)
ख) विशेषता (कार्रवाई फिल्टर के लिए परीक्षण के बीच में काम किया है कि बीच में लागू किया गया था (लिखा था जिम्मेदार बताते हैं कि)
: मैं दो बातों की पुष्टि करने से उस परिदृश्य का परीक्षण किया हालांकि, बीडीडी में मैंने समझा है कि मुझे व्यवहार से और भी अधिक चिंतित होना चाहिए, और कार्यान्वयन के साथ भी कम होना चाहिए। इसका मतलब है कि मुझे शायद यह सत्यापित करना चाहिए कि कार्रवाई स्थिति निष्पादित होने पर मॉडल स्थिति tempdata में है - यह आवश्यक नहीं है कि यह एक विशेषता के माध्यम से किया गया हो।
चीजों को और जटिल करने के लिए, सीधे परीक्षण में कार्रवाई को कॉल करते समय विशेषताओं को नहीं चलाया जाता है, इसलिए मैं केवल कार्रवाई को कॉल नहीं कर सकता और देख सकता हूं कि नौकरी पूरी की गई है या नहीं।
मुझे एमएसपीसी में इसे कैसे नमूना/परीक्षण करना चाहिए?
ठीक है। तो मूल रूप से आप जो अनुशंसा करते हैं वह यह है कि मैं एक व्यवहार को परिभाषित करता हूं जो "stores_model_state_in_temp_data" कहता है लेकिन असल में सिर्फ यह जांचता है कि विशेषता लागू होती है, और उसके बाद पूरी तरह से अलग परीक्षण संदर्भ में विशेषता के लिए परीक्षण परिभाषित किया जाता है? –
हां। आप अपेक्षित व्यवहार (क्या) कई बार परीक्षण करते हैं और उस बीयर (कैसे) के कार्यान्वयन का परीक्षण करते हैं। – Neal
ठीक है। अब, एक अनुवर्ती समस्या: परीक्षण के मेरे पुराने तरीके में यदि कोई विशेषता लागू की गई थी, तो मैंने प्रतिबिंब का उपयोग किया और एक अभिव्यक्ति और परीक्षण विधि में एक प्रकार पारित किया। एक व्यवहार निर्दिष्ट करते समय, मैं इन तर्कों को पारित करने का कोई तरीका नहीं समझ सकता। (टाइप क्लास क्लास जेनेरिक या कुछ बनाकर टाइप किया जा सकता है, लेकिन मुझे अभी भी लैम्ब्डा चाहिए ...) मैं यह कैसे कर सकता हूं? –