स्विफ्ट विधियों के लिए परीक्षण कैसे लिखते हैं जिनके पास पूर्व शर्त है?पूर्व शर्त के साथ परीक्षण स्विफ्ट कोड
func doublePositive(n:Int) -> Int {
precondition(n >= 0)
return 2*n
}
XCTAssertThrowsError
का उपयोग करना काम नहीं करता है:
थ्रेड 1:
func testDoublePositive() { XCTAssertEqual(10, testObject.doublePositive(5)) // Works XCTAssertThrowsError(testObject.doublePositive(-1)) // Breaks }
यह जब परीक्षण चलाने में कोई त्रुटि उत्पन्न करता है यहाँ एक उदाहरण है EXEC_BAD_INSTRUCTION (कोड = EXCI386_INVOP, subcode = 0x0)
क्या पूर्वोत्तर परीक्षण करने का कोई तरीका है स्विफ्ट के tions?
पूर्व शर्त में विफलता को पकड़ने का कोई मानक तरीका नहीं है, यह हमेशा कार्यक्रम को रोक देगा, हालांकि कुछ बदलाव हैं, http://www.cocoawithlove.com/blog/2016/02/02 पर एक नज़र डालें /partial-functions-part-two-catching-precondition-failures.html – ogres
@ogres वाह, यह एक अच्छा लेख है, धन्यवाद! – dasblinkenlight
मैं इसे गैर-परीक्षण कोड में देखने के लिए प्रतीक्षा नहीं कर सकता। मुझे खुशी है कि यह परीक्षण करने की कोशिश कर रहा है कि आप परीक्षण करने की कोशिश कर रहे हैं, लेकिन मुझे उस वेबसाइट से नफरत है ... क्योंकि मैं गारंटी देता हूं कि कोई इसे अपने मुख्य लक्ष्य में कार्यान्वित कर रहा है और ऐप को दुर्घटनाग्रस्त होने से रोकने के लिए अस्थिर धागे को अनाथ कर रहा है ... (और मैं यह कहता हूं, क्योंकि मैंने देखा है कि यह उनके समान उद्देश्य-सी आलेख के लिए होता है ...) – nhgrif