我有一些使用fixture的PHPUnit测试类。我已经定义了10个表夹具。目录结构:
var array=[1,2];
var aBlob = new Blob( array);
我现在有一个测试类(tests
fixtures
table1.php
...
table10.php
unit
MyTestClass.php
),其中我只想填充其中的两个表。我在该课程中有以下代码。
MyTestClass.php
函数class BaseACAExportTest extends CDbTestCase
{
public $fixtures = array(
'table1' => 'Model1',
'table2' => 'Model2'
);
public function setUp()
{
// Call the parent setUp to set up the fixtures
parent::setUp();
die();
}
public testMe()
{
// Test here
}
}
是一个自定义帮助函数,它截断所有10个表。我已经确认此功能有效。我运行测试,然后在TruncateDatabase
语句后检查数据库。在其中,我看到了所有10个表,而不是我在die
中定义的两个表。为什么要填充目录fixtures
中定义的所有表?有没有办法规避这个?
答案 0 :(得分:0)
这是Yii的夹具管理器的设计。
fixtures文件夹中的所有文件都用于填充数据库。
您在$fixtures
属性中编写的内容只是在测试中更快速访问灯具数据的方法。
只有编写自己的夹具管理器并用它替换默认夹具管理器,才能避开这种情况。