gpt4 book ai didi

PHPUnit 加载了太多的固定装置

转载 作者:行者123 更新时间:2023-11-30 22:23:36 25 4
gpt4 key购买 nike

我有一些使用固定装置的 PHPUnit 测试类。我已经定义了 10 个表固定装置。目录结构:

tests
fixtures
table1.php
...
table10.php
unit
MyTestClass.php

我现在有一个测试类 (MyTestClass.php),我只想在其中填充其中的 2 个表。我在该类(class)中有以下代码。

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
}
}

TruncateDatabase 函数是一个定制的辅助函数,它截断所有 10 个表。我已验证此功能有效。我运行测试并在 die 语句之后检查数据库。在其中,我看到了所有 10 个表,而不仅仅是我在 fixtures 中定义的两个表。为什么它会填充目录 fixtures 中定义的所有表?有什么办法可以避免这种情况吗?

最佳答案

是Yii的fixture manager的设计。

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

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

您只能通过编写自己的夹具管理器并用它替换默认的来避免这种情况。

关于PHPUnit 加载了太多的固定装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com