詳解Yaf架構PHPUnit整合測試方法講解

來源:互聯網
上載者:User
這篇文章主要介紹了詳解Yaf架構PHPUnit整合測試方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了詳解Yaf架構PHPUnit整合測試方法,分享給大家,具體如下:

測試目錄


test├── TestCase.php├── bootstrap.php├── controller│  ├── BaseControllerTest.php│  └── IndexControllerTest.php├── model├── phpunit.xml└── service  └── TokenServiceTest.php


phpunit.xml


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


bootstrap.php 測試架構入口檔案


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


TestCase.php 測試檔案基礎類


namespace test;use PHPUnit\Framework\TestCase as Test;use Yaf\Application;class TestCase extends Test{  protected static $_application = null;  protected function setUp()  {    self::$_application = $this->getApplication();    parent::setUp();  }  public function testAppPath()  {    $this->assertEquals('/Users/xiong/Sites/kyYaf', APP_PATH);  }  public function testApp()  {    $this->assertEquals(Application::app(), self::$_application);  }  public function testApplication()  {    $this->assertNotNull(self::$_application);  }  public function getApplication()  {    if (self::$_application == null) {      $this->setApplication();    }    return self::$_application;  }  public function setApplication()  {    $application = new Application(APP_PATH . '/conf/application.ini');    $application->bootstrap();    self::$_application = $application;  }}


TokenServiceTest.php service類例子


namespace Service;use test\TestCase;include TEST_DIR . '/TestCase.php';include APP_PATH . '/application/library/Service/BaseService.php';include APP_PATH . '/application/library/Service/TokenService.php';class TokenServiceTest extends TestCase{  /**   * @var TokenService   */  protected static $tokenService;  public function setUp()  {    self::$tokenService = TokenService::getInstance();    parent::setUp();  }  public function testCreateToken()  {    $token = self::$tokenService->createToken('22');    $this->assertInternalType('array', $token);    $this->assertInternalType('string', $token['token']);  }}


BaseControllerTest.php controller類例子


namespace test\controller;include TEST_DIR .'/TestCase.php';use test\TestCase;class BaseControllerTest extends TestCase{  public function testGetConfigAction()  {    $request = new Simple('CLI', '', 'Index', 'getConfig');    $response = self::$_application->getDispatcher()->returnResponse(true)->dispatch($request);    $contents = $response->getBody();    $data = json_decode($contents, true);    $this->assertInternalType('array', $data);  }}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.