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)
廣告
© . All rights reserved.