Avatar ·

كيف تتحقق في PHPUnit من أن الطريقة ألقت استثناءً؟

مرحباً بالجميع! لقد بدأت للتو في تعلم PHPUnit وأكتب اختبارات لمشروعي. لدي طريقة يجب أن ترمي استثناءً في ظروف معينة، مثل `InvalidArgumentException`، إذا تم تمرير وسيطة غير صحيحة. المشكلة أنني لا أستطيع فهم كيفية كتابة assert بشكل صحيح يتحقق من أنه تم إلقاء الاستثناء. جربت لف استدعاء الطريقة في `try...catch` ثم عمل `$this->assertTrue($caught)`، لكن هذا يبدو قبيحاً ولا يستخدم إمكانيات PHPUnit. إليك مثال على الكود الخاص بي: ```php class Calculator { public function divide($a, $b) { if ($b == 0) { throw new \InvalidArgumentException('Division by zero.'); } return $a / $b; } } ``` واختباري الذي يتحقق من الاستثناء بشكل غير جميل: ```php public function testDivisionByZero() { $calculator = new Calculator(); $caught = false; try { $calculator->divide(10, 0); } catch (\InvalidArgumentExce