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 - 编写一个方法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)
广告