当前位置:首页 > CMS教程 > 其它CMS > 列表

详解Yaf框架PHPUnit集成测试方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-25 10:43:29 浏览: 评论:0 

这篇文章主要介绍了详解Yaf框架PHPUnit集成测试方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。

本文介绍了详解Yaf框架PHPUnit集成测试方法,分享给大家,具体如下:

测试目录

  1. test 
  2. ├── TestCase.php 
  3. ├── bootstrap.php 
  4. ├── controller 
  5. │  ├── BaseControllerTest.php 
  6. │  └── IndexControllerTest.php 
  7. ├── model 
  8. ├── phpunit.xml 
  9. └── service 
  10.   └── TokenServiceTest.php 

phpunit.xml

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.      xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/6.2/phpunit.xsd" 
  4.      extensionsDirectory="dbunit.phar" bootstrap="./bootstrap.php"> 
  5. </phpunit> 

bootstrap.php 测试框架入口文件

  1. define("APP_PATH"realpath(dirname(__FILE__) . '/../')); 
  2. date_default_timezone_set("Asia/Shanghai"); 
  3. define("TEST_DIR", __DIR__); 

TestCase.php 测试文件基础类

  1. namespace test; 
  2. use PHPUnit\Framework\TestCase as Test; 
  3. use Yaf\Application; 
  4. class TestCase extends Test 
  5.   protected static $_application = null; 
  6.   protected function setUp() 
  7.   { 
  8.     self::$_application = $this->getApplication(); 
  9.     parent::setUp(); 
  10.   } 
  11.  
  12.   public function testAppPath() 
  13.   { 
  14.     $this->assertEquals('/Users/xiong/Sites/kyYaf', APP_PATH); 
  15.   } 
  16.  
  17.   public function testApp() 
  18.   { 
  19.     $this->assertEquals(Application::app(), self::$_application); 
  20.   } 
  21.  
  22.   public function testApplication() 
  23.   { 
  24.     $this->assertNotNull(self::$_application); 
  25.   } 
  26.  
  27.   public function getApplication() 
  28.   { 
  29.     if (self::$_application == null) { 
  30.       $this->setApplication(); 
  31.     } 
  32.     return self::$_application
  33.   } 
  34.  
  35.   public function setApplication() 
  36.   { 
  37.     $application = new Application(APP_PATH . '/conf/application.ini'); 
  38.     $application->bootstrap(); 
  39.     self::$_application = $application
  40.   } 

TokenServiceTest.php service类例子

  1. namespace Service; 
  2. use test\TestCase; 
  3. include TEST_DIR . '/TestCase.php'
  4. include APP_PATH . '/application/library/Service/BaseService.php'
  5. include APP_PATH . '/application/library/Service/TokenService.php'
  6. class TokenServiceTest extends TestCase 
  7.   /** 
  8.    * @var TokenService 
  9.    */ 
  10.   protected static $tokenService
  11.   public function setUp() 
  12.   { 
  13.     self::$tokenService = TokenService::getInstance(); 
  14.     parent::setUp(); 
  15.   } 
  16.  
  17.   public function testCreateToken() 
  18.   { 
  19.     $token = self::$tokenService->createToken('22'); 
  20.     $this->assertInternalType('array'$token); 
  21.     $this->assertInternalType('string'$token['token']); 
  22.   } 
  23.  

BaseControllerTest.php controller类例子

  1. namespace test\controller; 
  2. include TEST_DIR .'/TestCase.php'
  3. use test\TestCase; 
  4. class BaseControllerTest extends TestCase 
  5.   public function testGetConfigAction() 
  6.   { 
  7.     $request = new Simple('CLI''''Index''getConfig'); 
  8.     $response = self::$_application->getDispatcher()->returnResponse(true)->dispatch($request); 
  9.     $contents = $response->getBody(); 
  10.     $data = json_decode($contents, true); 
  11.     $this->assertInternalType('array'$data); 
  12.   } 
  13. }

Tags: Yaf框架 PHPUnit

分享到: