PHPUnit: методы-заглушки не определены

Я должен что-то упустить. Я'Я пытаюсь заглушить методы для класса в PHPUnit, но когда я вызываю метод для фиктивного объекта, он говорит мне, что метод не определен.

Пример класса для заглушки:

namespace MyApp;

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

Чтобы заглушить это, я пишу:

// 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'));

Но после вызова метода stubbed я получаю исключение:

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

используя PHPUnit 3.4.3 с PHP 5.3.0.

Еще одна маленькая вещь, которую я заметил, заключалась в том, что, если указать пространство имен вgetMock() метод приводит к исключению загрузки класса из-за двойного пространства имен:

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

Это выглядит довольно странно (и getmock () не примет пространство имен с обратной косой чертой). Единственное, о чем я мог подумать, может быть потому, что этот класс зарегистрирован в автозагрузчике?

Какие-нибудь мысли?

Ответы на вопрос(2)

Ваш ответ на вопрос