PHPUnit sahte nesneler ve yöntem türü avcılığı

0 Cevap php

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

0 Cevap