साथ परीक्षण नियंत्रक उदाहरण चर मुझे लगता है कि के रूप में केवल पढ़ने के लिए या संपादन योग्य के आधार पर पृष्ठों में कार्य करता है, तो उपयोगकर्ता के प्रवेश एक सिनात्रा एप्लिकेशन है।रैक :: टेस्ट और सिनात्रा
नियंत्रक सेट एक चर @can_edit
, वह यह है कि संपादन लिंक छुपाने/दिखाने के लिए विचारों द्वारा उपयोग किया जाता है। मैं अपने परीक्षणों में @can_edit
के मूल्य का परीक्षण कैसे कर सकता हूं? मुझे नहीं पता कि रैक :: टेस्ट के तहत नियंत्रक के वर्तमान उदाहरण को कैसे प्राप्त किया जाए।
मैं class_eval
का उपयोग नियंत्रक में logged_in?
विधि ठूंठ, लेकिन मैं अपने लिंक संपादन के लिए last_response.body
जाँच देखने के लिए अगर @can_edit
स्थापित किया गया है या नहीं का सहारा लेना हो रही है।
मैं @can_edit
के मूल्य का परीक्षण कैसे कर सकता हूं?
"परिणाम के लिए परीक्षण करना सबसे अच्छा है, कार्यान्वयन विवरण नहीं है" मैंने पहले इस तरह के बयान देखे हैं, और मुझे असहमत होना है। यदि आप 2 चाहते हैं, 1 + 1 काफी अच्छी तरह से काम करता है, लेकिन 1 + 2 + 10 - 11. ऐसा भी नहीं है जिसका मतलब है कि आपका एप्लिकेशन "वास्तव में ठीक से काम कर रहा है"। – nowk
मैं आपसे पूरी तरह से असहमत नहीं हूं, हालांकि: मान लें कि एक विधि है जो गलत तरीके से लागू की गई है।यदि विधि सही उत्तर देता है तो 100% समय (आप उस मामले के बारे में नहीं सोच सकते जहां यह विफल हो जाता है) तो क्या कार्यान्वयन वास्तव में "गलत है?" फर्क पड़ता है क्या? यदि आप स्वयं विधियों के चर के मूल्यों का परीक्षण करते हैं, तो आपके पास पर्याप्त परीक्षण मामले (इनपुट) नहीं हो सकते हैं। यदि आप चर का नाम बदलते हैं या अन्यथा अपने व्यवहार को बदलने के बिना अपने आवेदन के कार्यान्वयन को बदलते हैं, तो आपके परीक्षण बिना किसी संशोधन के पास हो सकते हैं। यह पहली जगह में परीक्षणों का उपयोग करने का एक बड़ा कारण है। –
मुझे लगता है कि @can_edit परीक्षण नियंत्रक के आउटपुट का परीक्षण कर रहा है। मैं @can_edit सेट होने पर क्या होना चाहिए इसके लिए दृश्य की जांच करके अप्रत्यक्ष रूप से परीक्षण करना पसंद नहीं करता। यह पूरी तरह से देखने के लिए, एक अलग परीक्षण होना चाहिए। – Brian