dbx12/yii2-mock-database

为 Yii2 数据库连接提供模拟连接。此连接可以被配置为在测试目的下失败操作。

v1.0.0 2021-09-01 07:09 UTC

This package is auto-updated.

Last update: 2024-09-05 18:00:36 UTC


README

此库为 Yii2 数据库连接提供适配的连接和命令类。使用它,您可以在测试中强制数据库失败,以检查当数据库不可达时您的应用程序如何表现。

设置和使用

  1. 使用 composer require --dev dbx12/yii2-mock-database 安装
  2. \dbx12\yii2MockDatabase\Connection 类定义为您的数据库连接类。
  3. 在测试期间,调用 Yii::$app->db->failAlways() 来失败所有后续命令。确保在这样做之前已经加载了您的测试数据。
  4. 通过调用 Yii::$app->db->passAlways() 返回正常行为
  5. 可选地,在 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>