PHPUnit加载了太多的灯具

时间:2016-03-14 12:37:30

标签: php mysql phpunit database-testing

我有一些使用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中定义的所有表?有没有办法规避这个?

1 个答案:

答案 0 :(得分:0)

这是Yii的夹具管理器的设计。

fixtures文件夹中的所有文件都用于填充数据库。

您在$fixtures属性中编写的内容只是在测试中更快速访问灯具数据的方法。

只有编写自己的夹具管理器并用它替换默认夹具管理器,才能避开这种情况。