Yii Testing测试
当我们编写一个PHP类时,我们逐步调试或使用die或echo语句来验证其工作方式。如果我们开发一个Web应用程序,我们在表单中输入测试数据以确保页面按照我们的预期工作。这个测试过程可以自动化进行。
自动化测试方法对于长期项目是有意义的,这些项目具有以下特点:
- 复杂且庞大
- 不断增长
- 以错误成本来衡量非常昂贵
如果你的项目没有变得复杂,或者相对简单,或者只是一个一次性项目,那么自动化测试可能会过度。
测试准备工作
步骤1 − 安装Codeception框架。运行以下代码。
步骤2 - 运行以下命令。
输出结果是“当前目录已更改为<directory>
。你应该将<directory>/vendor/bin
添加到你的PATH变量中。在这种情况下,运行以下代码:
步骤3 − 创建一个名为 ‘yii2_basic_tests’ 的新数据库。
步骤4 − 在tests目录中运行。
数据库配置可以在 tests/codeception/config/config.php 中找到。
步骤5 - 通过以下方式构建测试套件。
固定设备
固定设备的主要目的是在未知状态下设置环境,以使您的测试以预期的方式运行。Yii提供了一个接近固定设备框架的工具。Yii固定设备框架的一个关键概念是固定设备对象。它代表测试环境的特定方面。固定设备对象是 yii\test\Fixture类 的一个实例。
要定义一个固定设备,您应该创建一个新的类,并从yii\test\Fixture或yii\test\ActiveFixture扩展它。前者适用于通用固定设备,而后者专门设计用于与数据库和ActiveRecord一起使用。
单元测试
单元测试帮助您测试单个函数。例如,模型函数或组件类。
步骤1 - 在 tests/codeception/fixtures 目录下创建一个名为 ExampleFixture.php 的新固定设备文件。
步骤2 - 接下来,在tests/codeception/unit/models文件夹中创建一个名为ExampleTest.php的新测试文件。
在上面的代码中,我们定义了三个测试 –
- testCreateMyUser,
- testUpdateMyUser,和
- testDeleteMyUser。
我们刚刚创建了一个新用户,更新了他的名字,并试图删除他。我们根据 yii2_basic_tests 数据库管理 MyUser 模型,这是我们真实数据库的一个完整副本。
步骤3 - 要开始进行测试,进入 tests 文件夹并运行。
它应该通过所有的测试。您将会看到以下内容−
功能测试
功能测试可以帮助您进行以下操作:
- 使用浏览器模拟器对应用程序进行测试
- 验证功能正常工作
- 与数据库进行交互
- 将数据提交给服务器端脚本
在测试文件夹内执行以下操作:
上述命令在 tests/codeception/functional 文件夹下创建了 AboutPageCept.php 文件。在这个功能测试中,我们将检查我们的 about 页面是否存在。
步骤1 - 修改 AboutPageCept.php 文件。
在上述给定的代码中,我们检查了是否在关于页面上。显然,我们在页面上应该看到单词 ‘about’ ,而不是 ‘apple’。
步骤2 - 通过运行测试。
你将会看到以下输出 −