首页 > 开发 > PHP > 正文

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

2024-05-04 22:44:21
字体:
来源:转载
供稿:网友

本文介绍了详解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);  }}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表