Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPUnit-在child中实现抽象方法_Php_Phpunit - Fatal编程技术网

PHPUnit-在child中实现抽象方法

PHPUnit-在child中实现抽象方法,php,phpunit,Php,Phpunit,我有一组只读测试和两个修改数据的测试(插入/更新/删除)。我想备份我的表,这样每个测试类都会有一个他们将要修改的相关表的列表。这只是测试数据 我这样想: abstract class DataAlteringTestBase extends PHPUnit_Framework_TestCase { protected function setUp() { echo "backing up tables: " . $this->GetAlteredTableNames();

我有一组只读测试和两个修改数据的测试(插入/更新/删除)。我想备份我的表,这样每个测试类都会有一个他们将要修改的相关表的列表。这只是测试数据

我这样想:

abstract class DataAlteringTestBase extends PHPUnit_Framework_TestCase
{

  protected function setUp()
  {
    echo "backing up tables: " . $this->GetAlteredTableNames();
  }

  public abstract function GetAlteredTaleNames();

}
其中一个子类:

class DataAlteringTest extends DataAlteringTestBase
{
  function GetAlteredTaleNames()
  {
    return array("some_table");
  }

  public function testDummyStuffChild()
  {
    $this->assertTrue(true);
  }

}
我认为问题在于,PHPUnit试图从抽象类而不是它的子类获得方法实现

调用未定义的方法DataAlteringTest::GetAlteredTableNames()- 实现…\tests\DataAlteringTestBase.php:6-抽象 阶级


如何修复它?或者,在PHP/PHPUnit中实现这一点的想法有什么问题吗?

您有一些拼写错误-您在某些地方编写了
GetAlteredTaleNames()
,在其他地方编写了
GetAlteredTaleNames()

作为注释可能更好,不是吗?:)@yivi,嗯,不是真的,评论是要求澄清或对问题提出改进建议,但不是真正回答问题——尽管如此,我意识到这个答案(或问题)对其他任何人都没有多大用处。我知道,但正如你正确指出的,这个问题是毫无价值的。通过回答这个问题,我们最终可能会让系统更难及时正确地删除它,至少我是这么想的。当然,你的回答没有本质上的错误。其他人可能会来这里寻找正确的答案,并阅读有关打字错误的文章。不酷,确实是这样。Thx。三年过去了,这个问题仍然存在,仅仅因为它有答案。我投票结束这个问题,因为它是一个打字错误。