PHPUnit: niezdefiniowane metody stub

Tęsknię za czymś. Próbuję stub metody na klasy w PHPUnit, ale kiedy wywołam metodę na obiekt mock, mówi mi, że metoda jest niezdefiniowana.

Przykładowa klasa do stub:

namespace MyApp;

class MyStubClass 
{
   public function mrMethod()
   {
     // doing stuff
   }   
}

Aby to odgadnąć, piszę:

// specifying all getMock() args to disable calling of class __construct()
$stub = $this->getMock('MyStubClass', array(), array(), 'MockMyStubClass', false, false, false);
$stub->expects($this->any())
     ->method('mrMethod')
     ->will($this->returnValue('doing stuff'));

Ale po wywołaniu metody stubbed otrzymuję wyjątek:

$stub->mrMethod();
//PHP Fatal error:  Call to undefined method MockMyStubClass::mrMethod()

Używam PHPUnit 3.4.3 z PHP 5.3.0.

Inną małą rzeczą, którą zauważyłem, było określenie przestrzeni nazw wgetMock() metoda powoduje wyjątek ładowania klasy z powodu podwójnej przestrzeni nazw:

$stub = $this->getMock('MyApp\MyStubClass');
// Fatal error:  Class 'MyApp\MyApp\MyStubClass' not found

Wydaje mi się to dość dziwne (a getmock () nie akceptuje przestrzeni nazw z głównym ukośnikiem odwrotnym). Jedyną rzeczą, jaką mogłem sobie wyobrazić, może być to, że ta klasa jest zarejestrowana w autoloaderze?

jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion