dbx12 / yii2-mock-database
为 Yii2 数据库连接提供模拟连接。此连接可以被配置为在测试目的下失败操作。
v1.0.0
2021-09-01 07:09 UTC
Requires
- php: >7.4
Requires (Dev)
- phpunit/phpunit: 9.5.8
- yiisoft/yii2: >2.0.14
Conflicts
- yiisoft/yii2: <2.0.14
This package is auto-updated.
Last update: 2024-09-05 18:00:36 UTC
README
此库为 Yii2 数据库连接提供适配的连接和命令类。使用它,您可以在测试中强制数据库失败,以检查当数据库不可达时您的应用程序如何表现。
设置和使用
- 使用
composer require --dev dbx12/yii2-mock-database
安装 - 将
\dbx12\yii2MockDatabase\Connection
类定义为您的数据库连接类。 - 在测试期间,调用
Yii::$app->db->failAlways()
来失败所有后续命令。确保在这样做之前已经加载了您的测试数据。 - 通过调用
Yii::$app->db->passAlways()
返回正常行为 - 可选地,在 phpunit.xml 中注册 CleanupExtension 以删除旧的
mockDatabase.dat
文件(见下文)
其他方法
failNextCommand($count = 1)
允许您仅 失败 指定数量的命令,然后返回到“正常行为”passNextCommand($count = 1)
允许您仅 通过 指定数量的命令,然后返回到“总是失败”
清理扩展
清理扩展在最后一个测试之后删除第一个参数中给定的所有文件。您可以使用它来清理输出目录,防止旧文件影响未来的测试运行。所有路径必须是绝对路径或相对于 phpunit 的工作目录。下面的代码块提供了一个配置示例,它假定您的工作目录是项目根目录(您以 vendor/bin/phpunit
的方式调用 phpunit)。
<extension class="dbx12\yii2MockDatabase\CleanupExtension"> <arguments> <array> <!-- The three lines below specify that the file tests/_output/mockDatabase.dat is to be deleted after the last test --> <element key="0"> <string>tests/_output/mockDatabase.dat</string> </element> <!-- You could add another <element> tag like above here to delete additional files --> </array> </arguments> </extension>