Я тестирую абстрактный класс, который имеет метод Method . 
Вот мой абстрактный класс (сокращенный):
 abstract class ClassToTest { function Method($_value = NULL) { // based on the value passed in a different value is returned. } } 
Вот мой класс PHPUnit:
 class ClassToTestTest extends PHPUnit_Framework_TestCase { public $object = NULL; public function setUp() { $this->object = $this->getMockForAbstractClass('ClassToTest'); } public function testMethod() { // passing no value should return NULL $this->assertNull($this->object->Method()); // passing a value should return a value $this->assertEquals($this->object->Method($method), 'return_value'); } } 
Основываясь на документации PHPUnit, я должен быть в состоянии использовать
 $stub->expects($this->any())->method('Method')->willReturn('foo'); 
так или иначе, но я не могу понять, как это сделать.
  Как я могу использовать PHPUnit для тестирования метода под названием « Method ? 
Кроме того, у меня нет возможности переименовать метод на что-то еще.
Класс, который вы тестируете, – это, безусловно, единственный класс, в котором вы не должны насмехаться. Вы бы не тестировали его, если вы подделывали его вызовы метода.
Поскольку ваш класс является абстрактным, вам нужно проверить его с помощью конкретной реализации. Если у вас его нет, создайте его для теста.
 class MyClassToTest extends ClassToTest { // implement abstract methods } 
 class ClassToTestTest extends PHPUnit_Framework_TestCase { private $object; protected function setUp() { $this->object = new MyClassToTest(); } public function testMethod() { $this->assertSame('return_value', $this->object->Method('foo')); } 
}