एक बयान अगर कुछ सही है और यदि किसी विशेष त्रुटि संदेश प्रिंट और बाहर निकालता हैक्या आर में पाइथन के रूप में एक जोरदार बयान है?
79
A
उत्तर
99
11
@Nick:
अगर आप शर्त यह है कि अपने कार्यक्रम में एक त्रुटि फेंक होगा परीक्षण करने के लिए एक विवरणात्मक नाम के साथ एक समारोह लिखने आप अपने त्रुटि संदेश को नियंत्रित कर सकते हैं। यहाँ एक उदाहरण है:
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
यह संख्या 8 के माध्यम से 1 प्रिंट होगा, तो बताने वाला संदेश
Error: Less_Than_8(i) is not TRUE
यह अच्छा होगा अगर "i" कोष्ठक में मूल्य के साथ बदल दिया गया था मुद्रित कि परीक्षण में असफल रहा, लेकिन आप जो भुगतान करते हैं वह आपको मिलता है।
यदि आपको उससे कुछ भी प्रशंसक की आवश्यकता है, तो रनल और टेस्टथैट देखें क्योंकि हारलन ने सुझाव दिया था।
क्या स्टॉपफ़ोनॉट() बंद होने पर रिपोर्ट किए गए त्रुटि संदेश को नियंत्रित करने का कोई तरीका है? – Nick
@ निक, नहीं। वैधता परीक्षण के लिए 'stopifnot()' का उपयोग करें, यह जांचने के लिए कि वह कोड क्या कर रहा है, यह जांचने के लिए, लेकिन इनपुट परीक्षण के लिए 'if (blahdiblah) रोकें (" त्रुटि संदेश "), परीक्षण करने के लिए कि प्रोग्राम में इनपुट है वैध। केवल सामान्य उपयोग के दौरान उत्तरार्द्ध होना चाहिए। – Harlan
हैडली का नया 'assertthat' पैकेज भी देखें, जो 'stopifnot' से बेहतर उत्तर देता है: https://github.com/hadley/assertthat – Harlan