Bu soru bir süreliğine cevapsızdı, ama aynı sorunla karşılaştım. Bu mümkün görünmüyor; Eğer alay işlevsellik için alay nesnesi kullanabilirsiniz,
<?php
class SomeClass {
const FOOBAR = 'foobar';
}
class SomeTest extends PHPUnit_Framework_TestCase {
public function setUp() {
$mock = $this->getMock('SomeClass');
}
}
// tests
?>
Sonra test dosyasında
, ve ilk başta olurdu sabit aynı şekilde sınıfını kullanın: ancak, orada en az bir kirli iş çevresinde var . Örneğin:
// Call a method on mocked object
// (would need to add this method to your mock, of course)
$mock->doSomething();
// Use the constant
$fooBar = SomeClass::FOOBAR;
Bu kirli, bu yüzden gerçek SomeClass
sınıf yüklenmeye çalışıyor autoloading çeşit kullanıyorsanız emin işler çok berbat alabilir, ama bu "iyi" çalışacak Orijinal SomeClass
yüklenmiyorsa.
Diğer çözümlerin yanı sıra bunun gerçekten ne kadar kirli olduğuna dair bazı geri bildirimler almakla kesinlikle ilgileniyorum.
Yansıma sınıfı ne istediğinizi başarır mı? http://php.net/manual/en/book.reflection.php –