Testlerim var ve sınıflarımın istisnaları doğru zamanda attığını test etmek istiyorum. Örnekte, benim sınıf __get() sihirli yöntemini kullanır, bu yüzden geçersiz özellik alındığında bir özel durum olduğunu test etmek gerekir: ama yerine, olması gerektiği gibiPHPUnit beklenen istisnaları yakalamıyor
function testExceptionThrownWhenGettingInvalidProperty() {
$obj = new MyClass();
$this->setExpectedException("Property qwerty does not exist");
$qwerty = $obj->qwerty;
}
sınıf bir hata atar Sadece bir geçiş olsun, istisna yakalanmadı!
There was 1 error:
1) QueryTest::testExceptionThrownWhenGettingInvalidProperty
Exception: Property qwerty does not exist
önce SimpleTest kullanarak, ve
$this->expectException(new Exception("Property qwerty does not exist"));
gayet güzel çalıştı. Diğer yöntemlerin (@expectedException ve try-catch) olduğunu biliyorum, ancak bu işe yarayacak ve çok daha temiz görünüyor. Bunu nasıl yapabileceğime dair herhangi bir fikrin var mı? Eğer
SPL Exceptions kullanarak veya özel istisna sınıfları yaparken bu istisna metnin aramıyor
Teşekkürler! Bunu tamamen göz ardı ettim çünkü bunu yapmanın SimpleTest yöntemine alıştım. Metni test etmenin kolay bir yolu var mı? –
@Nathan, @ircmaxell: Cevabımı gör, metin testi de dahil olmak üzere bunu yapmanın daha iyi bir yolu var. – ryeguy
@ircmaxell: Önemli olmayan mesaja katılmıyorum. Çıkan her yeni hata için yeni bir istisna oluşturan iyi tasarlanmış dil veya çerçeve görmüyorsunuz. Bu çok fazla iş olurdu. – ryeguy