1
我正在測試一個名爲Method
的方法的抽象類。使用名爲'方法'的方法的PHPUnit測試和抽象類
這裏是我的抽象類(有刪節):
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 Documentation我應該能夠使用
$stub->expects($this->any())->method('Method')->willReturn('foo');
不知何故,但我無法弄清楚如何使這項工作。
如何使用PHPUnit測試名爲Method
的方法?
此外,我沒有選擇將方法重命名爲其他內容。
有一組從該抽象類繼承的類,這樣我就可以以這種方式測試,但該方法的聲明和抽象類定義,因此它使最有意義的是抽象類測試應該測試該方法而不依賴於繼承類來測試它。 –
使用其中一個實現來測試抽象的。你可以有一個通用的測試用例類,所有的實現測試都會繼承它們(因爲它們都會共享這種行爲)。無論哪種方式,嘲笑受測試的課程都不是這樣。 –