2010-10-03 14 views

उत्तर

26

निश्चित रूप से आप कर सकते हैं!

require 'test/unit' 
extend Test::Unit::Assertions 
assert_equal 5, 5    # <= nil 
assert_equal 5, 6    # <= raises AssertionFailedError 

क्या हो रहा है कि सभी दावे टेस्ट :: यूनिट :: एसेरशन मॉड्यूल में विधियां हैं। अंदरूनी आईआरबी से उस मॉड्यूल को विस्तारित करने से उन तरीकों को कक्षा विधियों के रूप में main पर उपलब्ध कराया जाता है, जो आपको सीधे अपने आईआरबी प्रॉम्प्ट से कॉल करने की अनुमति देता है। (वास्तव में, किसी भी सन्दर्भ में extend SomeModule बुला कि मॉड्यूल में तरीकों डाल देंगे कहीं आप उन्हें एक ही संदर्भ से को कॉल कर सकते हैं - main सिर्फ होता है होने के लिए जहां आप डिफ़ॉल्ट रूप से कर रहे हैं।)

इसके अतिरिक्त, क्योंकि दावे होने के लिए डिजाइन किए गए थे TestCase के भीतर से चलाएं, अर्थशास्त्र अपेक्षा से थोड़ा अलग हो सकता है: सत्य या गलत लौटने की बजाय, यह शून्य देता है या एक त्रुटि उठाता है।

+1

यह एकदम सही था। शीघ्र जवाब देने के लिए ध्न्यवाद। विस्तृत विवरण के बाद उद्धरण को हटाने के लिए बस जरूरी है। – Chris

+0

ओह, वही है जो मुझे इसका परीक्षण नहीं करने के लिए मिलता है। :-) थोड़ा और स्पष्टीकरण (आपके या भविष्य के दर्शकों के लिए) में फिक्स्ड और भर गया। –

+0

यदि आप आईआरबी में इसे सच/गलत वापस करना चाहते हैं, तो इसके बजाय == का उपयोग करें। 5 == 5 # => सच 5 == 6 # => झूठी –

4

तुम भी

raise "Something's gone wrong" unless 5 == 5 

मैं कोड में assert कि परीक्षण किया जा रहा का उपयोग नहीं करते क्या कर सकते हैं, मैं केवल परीक्षण कोड में इसका इस्तेमाल करते हैं।

5

सही जवाब है,

require 'test/unit/assertions' 

include Test::Unit::Assertions 
+0

वाह। महान!! पूरे इंटरनेट पर खोज करने के बाद। मुझे यह समाधान मिला। @ नीलेश – Aravin

संबंधित मुद्दे

 संबंधित मुद्दे