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文件夹下创建一个文件夹,模型.

  • 第2步 : 在fuel/app/tests/model/文件夹下创建一个文件employee.php.

  • 第3步 : 通过扩展PHPUnit提供的TestCase类来创建一个新的测试类Test_Model_Employee.

  • 步骤4 : 编写一个方法testInstanceOfEmployee(),使用PHPUnit的TestCase类提供的assertInstanceOf()方法为员工对象创建资产.

以下是完整代码 :

<?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)