• 技术文章 >后端开发 >php教程

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

    jacklovejacklove2018-07-04 17:51:40原创843
    这篇文章主要介绍了详解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);
      }
    }


    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持php中文网。


    您可能感兴趣的文章:

    快速解决PHP调用Word组件DCOM权限的问题讲解

    PHP获取数组中指定的一列实例讲解

    PHP数组式访问接口ArrayAccess的用法分析


    以上就是详解Yaf框架PHPUnit集成测试方法讲解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:快速解决PHP调用Word组件DCOM权限的问题讲解 下一篇:Laravel中使用Queue的最基本操作教程讲解
    大前端线上培训班

    相关文章推荐

    • 采集微信平台实时消息json有关问题 • xml解决思路 • php session有关问题 • 关于页面pv统计的有关问题 • ThinkPHP的PHP变量传送到模板原理浅析

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网