【发布时间】:2018-09-08 23:56:33
【问题描述】:
我正在使用现有的 phpunit 测试套件,并尝试合并 dbunit。特别是,我想使用 dataSet 抽象来加载夹具数据并在我之后进行清理。 我已将 PHPUnit_Extensions_Database_TestCase_Trait 特征添加到测试用例中,并实现了函数 getConnection 和 getDataSet。但是,这些方法只会被 trait 的默认 setUp 和 tearDown 方法调用。我的许多测试都定义了自己的 setUp 和 tearDown 方法。 是否有不同的地方我应该放置这个现有的 setUp/tearDown 代码,这样我就不必从特征中覆盖 setUp 和 tearDown ? 参考代码:
class FooTest extends \PHPUnit_Framework_TestCase {
use PHPUnit_Extensions_Database_TestCase_Trait;
static private $pdo = null;
private $conn = null;
public function testTrueIsTrue() {
$foo = true;
$this->assertTrue($foo);
}
public function setUp() {
error_log("in setUp");
}
public function tearDown() {
error_log("in tearDown");
}
public function getConnection() {
error_log("in getConnection");
return $this->createDefaultDBConnection();
}
/**
* @return PHPUnit_Extensions_Database_DataSet_IDataSet
*/
public function getDataSet() {
error_log("in getDataSet");
return new PHPUnit_Extensions_Database_DataSet_DefaultDataSet();
}
}
【问题讨论】:
-
所以从覆盖方法运行父方法
-
parent::setUp();作为setUp()方法等的第一行等 -
我想调用由 trait 添加的 setUp 和 tearDown 方法,而不是从父级继承的方法。