मेरे पास परीक्षण का एक सेट है, और मैं परीक्षण करना चाहता हूं कि मेरी कक्षाएं सही समय पर अपवाद फेंक दें। उदाहरण में, मेरी कक्षा __get() जादू विधि का उपयोग करता है, इसलिए मैं परीक्षण करने के लिए है कि एक अपवाद जब गलत संपत्ति लिया गया है फेंक दिया जाता है की जरूरत है:PHPUnit अपेक्षित अपवाद नहीं पकड़ता
function testExceptionThrownWhenGettingInvalidProperty() {
$obj = new MyClass();
$this->setExpectedException("Property qwerty does not exist");
$qwerty = $obj->qwerty;
}
वर्ग के रूप में यह होना चाहिए एक त्रुटि फेंकता है, लेकिन इसके बजाय का बस पास हो रहा है, अपवाद पकड़ा नहीं गया है!
There was 1 error:
1) QueryTest::testExceptionThrownWhenGettingInvalidProperty
Exception: Property qwerty does not exist
मैं पहले SimpleTest का उपयोग कर रहा था, और $this->expectException(new Exception("Property qwerty does not exist"));
बस ठीक काम किया। मुझे पता है कि अन्य विधियां हैं (@expectedException और try-catch), लेकिन यह काम करना चाहिए और यह बहुत साफ दिखता है। कोई विचार है कि मैं यह काम कैसे कर सकता हूं?
धन्यवाद! मैंने पूरी तरह से अनदेखा किया क्योंकि मुझे इसे करने के सरलतम तरीके से उपयोग किया गया था। क्या आपको पता है कि पाठ के लिए परीक्षण करने का कोई आसान तरीका है? –
@ नाथन, @ircmaxell: मेरा जवाब देखें, टेक्स्ट के परीक्षण सहित, ऐसा करने का एक बेहतर तरीका है। – ryeguy
@ircmaxell: मैं इस मामले से असहमत हूं कि इससे कोई फर्क नहीं पड़ता। आप किसी भी अच्छी तरह से डिज़ाइन की गई भाषा या ढांचे को नहीं देखते हैं जो पॉप अप होने वाली हर नई त्रुटि के लिए एक नया अपवाद बनाते हैं। यह बहुत अधिक काम होगा। – ryeguy