概述
如何创建一个基类,扩展PHPUnit_Framework_TestCase,并将其用于继承实际测试用例,同时避免PHPUnit测试基类本身?
进一步解释
我有一系列相关的测试用例,我创建了一个基类,其中包含一些共同的测试,供所有测试用例继承:
BaseClass_TestCase.php:
class BaseClass_TestCase extends PHPUnit_Framework_TestCase {
function test_common() {
// Test that should be run for all derived test cases
}
}
MyTestCase1Test.php:
include 'BaseClass_TestCase.php';
class MyTestCase1 extends BaseClass_TestCase {
function setUp() {
// Setting up
}
function test_this() {
// Test particular to MyTestCase1
}
}
MyTestCase2Test.php:
include 'BaseClass_TestCase.php';
class MyTestCase2 extends BaseClass_TestCase {
function setUp() {
// Setting up
}
function test_this() {
// Test particular to MyTestCase2
}
}
我的问题是,当我尝试运行文件夹中的所有测试时,它会失败(没有输出)。
试图调试时,我发现问题出在基类本身是PHPUnit_Framework_TestCase的子类上,因此PHPUnit也会尝试运行其测试。 (在那之前,我天真地认为只有在实际测试文件中定义的类 - 文件名以Test.php结尾 - 才会被测试。)
由于特定实现的细节,将基类作为测试用例在上下文之外运行不起作用。
如何避免对基类进行测试,只测试派生类?