Ben phpunit kullanarak \ SplObserver bir mock nesne oluşturmak ve bir \ SplSubject için alaya nesne eklemek çalışıyorum. Ben \ SplSubject uygulayan bir sınıfa alaya nesne eklemek çalıştığınızda, ben alay nesnesi \ SplObserver uygulamak olmadığını söyleyerek catchable ölümcül bir hata alıyorum:
PHP Catchable fatal error: Argument 1 passed to ..\AbstractSubject::attach() must implement interface SplObserver, instance of PHPUnit_Framework_MockObject_Builder_InvocationMocker given, called in ../Decorator/ResultCacheTest.php on line 44 and defined in /users/.../AbstractSubject.php on line 49
Daha fazla veya daha az, burada kod:
// Edit: Using the fully qualified name doesn't work either
$observer = $this->getMock('SplObserver', array('update'))
->expects($this->once())
->method('update');
// Attach the mock object to the cache object and listen for the results to be set on cache
$this->_cache->attach($observer);
doSomethingThatSetsCache();
Ben bir fark yaparsa emin değilim, ama PHP 5.3 ve phpunit 3.4.9 kullanıyorum