ruby - refactoring tests that use assert_raises -
मेरे पास एक परीक्षण ब्लॉक है:
वर्णन 'बिना' का वर्णन 'लेखक' करते हैं ((लेखक) {निल} यह ('असफल') {assert_raises (ArgumentError) {excerpt}} अंत का वर्णन 'शीर्षक' ऊपर के रूप में वही सामग्री नहीं है, लेकिन शीर्षक शीर्षक परीक्षण 'सामग्री' का वर्णन ऊपर के रूप में वही सामग्री # लेकिन सामग्री की समाप्ति का परीक्षण
यह ठीक काम करता है और परीक्षाएं पास होती हैं - लेकिन यहां बहुत सारी पुनरावृत्ति होने के बाद, मैं रिफैक्टर करना चाहता था:
वर्णन ' बिना 'आइए वर्णन' लेखक 'दें' ((लेखक) {निल} यह ('विफल करता है') {assert_failure (excerpt}) # इस पंक्ति के अंत में एक विधि को जोड़ा गया 'शीर्षक' का वर्णन ऊपर के रूप में वही सामग्री है, लेकिन शीर्षक के अंत में परीक्षण 'सामग्री' का वर्णन केवल ऊपर की तरह ही सामग्री है, लेकिन सामग्री की समाप्ति # पर परीक्षण करना और विधि यहाँ def assert_failure (उदाहरण) assert_raises (ArgumentError) {instance} अंत समाप्ति
हालांकि यह नहीं है काम - मेरे परीक्षण निम्न त्रुटि के साथ विफल:
निर्माण :: बिना :: लेखक # test_0001_fails: तर्क त्रुटि: उद्धरण नहीं बनाया जा सकता है: लेखक गायब
कौन सी त्रुटि है कि मुझे लापता हुई जानकारी के साथ उठने की उम्मीद है - और वास्तव में मैं जो परीक्षण कर रहा हूं इसलिए ऐसा लगता है कि जब यह दावा निकाला जाता है, तो तर्क त्रुटि
उठाया जा रहा है और assert_raises
से पहले किसी भी प्रकार की तुलना कर सकता है मैंने इस तर्क के लिए देखा, लेकिन मैं यह नहीं कह सकता कि यह क्यों होगा जब कोड को किसी अन्य विधि में निकाला जाएगा, लेकिन जब यह लाइन में नहीं है
जब आप निम्न वाक्य रचना के साथ लिखते हैं:
assert_raises (ArgumentError ) {Excerpt}
आप वास्तव में assert_raises
से गुजर रहे हैं एक है इसका अर्थ यह है कि कोड ( अंश)
) का मूल्यांकन नहीं किया जाता है, जब तक कि विधि स्वयं निर्णय नहीं कर लेता कि उसे इसका मूल्यांकन करना है।
इस वाक्यविन्यास के साथ, यद्यपि:
< Code> assert_failure (excerpt)
अंश
का मूल्यांकन पहले assert_failure
शुरू होता है।
assert_failure
एक ब्लॉक को पारित करना होगा: def assert_failure (और ब्लॉक) assert_raises (ArgumentError, और ब्लॉक ) अंत का वर्णन 'लेखक' करते हैं (: लेखक) {निल} यह ('विफल करता है') {assert_failure {excerpt}} end
Comments
Post a Comment