FuelPHP 单元测试
单元测试是开发大型项目的必要过程。 单元测试有助于在开发的每个阶段自动测试应用程序的组件。当应用程序的组件没有根据项目的业务规范工作时,它会发出警报。单元测试可以手动完成,但通常是自动化的。
PHPUnit
FuelPHP 框架与 PHPUnit 测试框架集成。要为 FuelPHP 框架编写单元测试,我们需要设置 PHPUnit。如果未安装 PHPUnit,则下载并安装它。我们可以使用以下命令确认系统中 PHPUnit 的可用性。
phpunit--version
如果 PHPUnit 可用,您将看到类似下面的结果。
PHPUnit 5.1.3 by Sebastian Bergmann and contributors.
创建单元测试
FuelPHP 提供的编写单元测试的标准位置是fuel/app/tests。我们可以在单独的文件夹中为控制器、模型、视图和演示者编写单元测试。让我们编写一个单元测试来验证 Model_Employee 对象。
- 步骤 1-在fuel/app/tests文件夹下创建一个文件夹,model。
- 步骤 2-在fuel/app/tests/model/文件夹下创建一个文件employee.php。
- 步骤 3-通过扩展 PHPUnit 提供的 TestCase 类创建一个新的测试类 Test_Model_Employee。
- 步骤 4-使用 PHPUnit 的 TestCase 类提供的 assertInstanceOf() 方法编写一个方法 testInstanceOfEmployee() 来资产创建员工对象。
以下是完整的代码:
<?php class Test_Model_Employee extends Testcase { public function testInstanceOfEmployee() { $this->assertInstanceOf(Model_Employee::class, new Model_Employee()); } }
创建测试组
FuelPHP 提供了创建一组测试用例的选项。创建组就像添加 docblock 属性 @group 一样简单。让我们将我们的测试用例包含在 MyTest 组中。
<?php /** * @group MyTest */ class Test_Model_Employee extends Testcase { public function testInstanceOfEmployee() { $this->assertInstanceOf(Model_Employee::class, new Model_Employee()); } }
运行测试
要运行目录中的所有测试,请使用以下命令。
$ php oil test
要运行一组特定的测试,请使用以下命令。
$ php oil test--group = MyTest
执行命令后,您将收到以下响应。
Tests Running...this may take a few moments. PHPUnit 5.1.3 by Sebastian Bergmann and contributors. 1 / 1 (100%). Time: 123 ms, Memory: 8.00Mb OK (1 test, 1 assertion)
在本章中,我们将学习如何在 FuelPHP 中创建一个完整的基于 MVC 的 BookStore 应用程序。 步骤 1:创建项目使用以下命令在 FuelPHP 中创建一个名为"BookStor ...