【问题标题】:PHPUnit - implementing abstract method in childPHPUnit - 在孩子中实现抽象方法
【发布时间】:2017-06-04 00:15:38
【问题描述】:

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

我是这样想的:

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 中实现这个想法有什么问题?

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为这是一个拼写错误。

标签: php phpunit


【解决方案1】:

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

【讨论】:

  • 作为评论可能更好,不是吗? :)
  • @yivi,嗯,不是真的,cmets 要求澄清或建议改进问题,但不实际回答问题 - stackoverflow.com/help/privileges/comment 话虽如此,我意识到这个答案(或这个问题)对其他人没有多大用处。
  • 我知道,但正如您正确指出的那样,这个问题有点毫无价值。通过回答它,我们最终可能会让系统更难及时正确地删除它,或者我是这么认为的。当然,您的答案本质上没有错。其他人可能最终会来这里寻找正确的答案并阅读有关错字的信息。不酷。
  • 我确实做到了。谢谢。
  • 3 年过去了,这个问题仍然存在,只是因为它有答案。
猜你喜欢
  • 2011-10-07
  • 2016-12-28
  • 2015-08-31
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 2011-12-01
  • 1970-01-01
  • 2013-05-30
相关资源
最近更新 更多