gpt4 book ai didi

php - 不可测试的基类扩展 PHPUnit_Framework_TestCase

转载 作者:IT王子 更新时间:2023-10-29 01:22:01 25 4
gpt4 key购买 nike

总结

我如何创建一个扩展 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 结尾的文件名 - 才会被测试。)

由于我的具体实现中的细节,在上下文之外将基类作为测试用例运行是行不通的。

如何避免测试基类,只测试派生类?

最佳答案

让它抽象化,PHPUnit 应该忽略它。

关于php - 不可测试的基类扩展 PHPUnit_Framework_TestCase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com