亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHPUnit單元測試YAF控制層

2020-03-22 20:09:46
字體:
來源:轉載
供稿:網友
  • 在Yaf應用中,創建一個控制層UserController:

    <?phpClass UserController extends Yaf_Controller_Abstract {    // init方法相當于控制器的初始化函數,取消自動渲染視圖    html' target='_blank'>public function init() {        Yaf_dispatcher::getInstance()->disableView();    }    // 輸出需要的JSON信息    private function __responseJson($code=0, $data=FALSE) {        $response = json_encode(array('code'=>$code, 'data'=>$data));        $this->getResponse()->setBody($response);    }    // JSON Action    public function jsonAction($uid=0) {        if ( $uid < 1 ) return $this->__responseJson(-1);         $user_model = new UserModel();        $row = $user_model->fetchRowById($uid);        return $this->__responseJson(0, $row);    }}
    測試控制器是一個相對比較不容易理解的過程,由于控制器本身可能存在輸出一段JSON后Exit的過程,會導致Response出來的數據無法別測試用例獲取。這里就需要YAF兩個特殊的方式來操作:1. 輸出的時候需要用到Yaf_Response_Abstract的方法。該方法同時可以在Yaf_Dispatchar調度器中通過設置returnResponse控制是否輸出數據,因此我們之前在User控制器中使用:$this->getResponse()->setBody($response);2. YAF本身允許在CLI模式執行,我們可以通過YAF_Request_Sample創建一個簡單請求,創建request.php<?php$request = new Yaf_Request_Simple();print_r($request);如我們在命令行下執行request.php,可以看到如下結果:

    基于以上兩點,為此我們來創建一個測試用例:UserControllerTest.php 該文件僅用于測試UserController的業務。


    <?phpdefine('APP_PATH', dirname(__FILE__) . '/../../');define('APP_ENV', 'loc');error_reporting(E_ERROR | E_PARSE); Class UserControllerTest extends PHPUnit_Framework_TestCase {     private $__application = NULL;        // 初始化實例化YAF應用,YAF application只能實例化一次    public function __construct() {        if ( ! $this->__application = Yaf_Registry::get('Application') ) {            $this->__application = new Yaf_Application(APP_PATH."/config/application.ini", APP_ENV);            Yaf_Registry::set('Application', $this->__application);        }    }     // 創建一個簡單請求,并利用調度器接受Repsonse信息,指定分發請求。    private function __requestActionAndParseBody($action, $params=array()) {        $request = new Yaf_Request_Simple("CLI", "Index", "User", $action, $params);        $response = $this->__application->getDispatcher()            ->returnResponse(TRUE)            ->dispatch($request);        return $response->getBody();    }     // 測試 JsonAction UID存在    public function testJsonUid1Action() {        $response = $this->__requestActionAndParseBody('Json', array('uid'=>1));        $data     = json_decode($response, TRUE);        $this->assertInternalType('array', $data);        $this->assertEquals('0', $data['code']);        $this->assertInternalType('string', $data['data']['username']);        $this->assertRegExp('/^/d+$/', $data['data']['groupid']);        $this->assertRegExp('/^/d+$/', $data['data']['adminid']);        $this->assertRegExp('/^/d+$/', $data['data']['regdate']);    }     // 測試 JsonAction UID不存在,UID不存在返回的code應該是-1    public function testJsonUidNotFoundAction() {        $response = $this->__requestActionAndParseBody('Json');        $data     = json_decode($response, TRUE);        $this->assertInternalType('array', $data);        $this->assertEquals('0', $data['code']);    }}



    注意我們創建請求的過程 (__requestActionAndParseBody):1.設置CLI請求的Request對象信息;2.通過Application獲取調度器Dispatcher;3.設置返回接收Response的對象,不自動輸出;4.通過Dispatcher自動分發指定的Request對象;5.獲取返回的Response主體信息6.進行驗證測試結果:第二個Function由于非法請求返回參數code:-1測試失敗。
    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    久久免费观看视频| 亚洲人成电影网站色www| 欧美怡春院一区二区三区| 国产成人精品久久二区二区| 欧美日韩免费区域视频在线观看| 精品激情国产视频| 欧美精品videofree1080p| 国内精品久久久久久影视8| 国产成人在线亚洲欧美| 国产精品欧美风情| 国产一区二区三区直播精品电影| xvideos国产精品| 欲色天天网综合久久| 97久久精品人人澡人人爽缅北| 亚洲自拍小视频| 国产日韩综合一区二区性色av| 成人欧美一区二区三区在线| 国产精品网红福利| 欧美高清视频在线播放| 国产亚洲欧美日韩美女| 亚洲乱码一区二区| 中文字幕在线国产精品| 国产精品久久久久久久久久新婚| 欧美自拍视频在线观看| 亚洲国产精品成人va在线观看| 国产激情久久久久| 亚洲香蕉av在线一区二区三区| 亚洲精品二三区| 亚洲福利在线视频| 欧美性xxxx极品hd欧美风情| 亚洲精品www久久久久久广东| 亚洲国产美女精品久久久久∴| 国产精品美乳在线观看| 久久伊人精品视频| 91九色国产社区在线观看| 性夜试看影院91社区| 日本视频久久久| 91精品91久久久久久| 成人亲热视频网站| xxxx欧美18另类的高清| 欧美在线观看www| 国产一区二区三区直播精品电影| 国产精品视频成人| 亚洲精品一区二区三区不| 久久免费精品日本久久中文字幕| 国产网站欧美日韩免费精品在线观看| 日本韩国欧美精品大片卡二| 在线播放国产一区中文字幕剧情欧美| 欧美日韩免费观看中文| 国产成人高清激情视频在线观看| 成人精品一区二区三区电影黑人| 66m—66摸成人免费视频| 国产一区二区三区丝袜| 色噜噜国产精品视频一区二区| 亚洲色图第三页| 成人欧美一区二区三区在线| 精品丝袜一区二区三区| 一区二区三区亚洲| 伊人一区二区三区久久精品| 综合国产在线视频| 欧美日韩国产成人| 日本免费在线精品| 欧美成人精品在线| 欧美日韩性视频在线| 91精品久久久久久久| 国产精品香蕉在线观看| 成人免费看吃奶视频网站| 欧美性猛交xxxx免费看| 色www亚洲国产张柏芝| 国产91精品久久久久久| 最近2019中文字幕mv免费看| 久久精品成人欧美大片古装| 午夜精品一区二区三区在线视频| 国产精品入口福利| 成人欧美一区二区三区黑人孕妇| 欧美理论电影网| 伊人成人开心激情综合网| 中文字幕自拍vr一区二区三区| 国产一区视频在线| 久久影院模特热| 欧美区在线播放| 日韩一级黄色av| 国产精品∨欧美精品v日韩精品| 日韩美女视频中文字幕| 日韩在线一区二区三区免费视频| 91美女片黄在线观| 欧美精品videosex牲欧美| 欧美一区二区视频97| 久久精品视频免费播放| 欧美成人免费视频| 精品爽片免费看久久| 俺去了亚洲欧美日韩| 欧美区二区三区| 欧美日韩黄色大片| 亚洲女人天堂色在线7777| 91日本视频在线| 欧美日韩亚洲视频| 欧美一区第一页| 国产a∨精品一区二区三区不卡| 亚洲女同性videos| 国产精品免费一区豆花| 欧美在线视频网| 黑人狂躁日本妞一区二区三区| 91亚洲国产成人久久精品网站| 日韩av资源在线播放| 亚洲欧美另类自拍| 欧美激情精品久久久久久大尺度| 久久综合伊人77777| 成人免费看片视频| xvideos亚洲人网站| 欧美综合国产精品久久丁香| 午夜精品www| 久青草国产97香蕉在线视频| 日韩av中文字幕在线播放| 久久精品2019中文字幕| 欧美亚洲日本网站| 久久久久久综合网天天| 亚洲精品电影在线观看| 91久久精品久久国产性色也91| 国产女人精品视频| 欧美中文字幕在线观看| 日韩免费av一区二区| 久久精品中文字幕免费mv| 九九热精品视频国产| 久久九九精品99国产精品| 国产婷婷97碰碰久久人人蜜臀| 欧美一区二区.| 成人av色在线观看| 亚洲美女视频网站| 成人午夜在线视频一区| 狠狠操狠狠色综合网| 国产精品亚洲视频在线观看| 欧美精品在线看| 国产丝袜视频一区| 国产欧美一区二区| 亚洲精品99久久久久| 国产精品久久久久久久久粉嫩av| 51精品在线观看| 国产亚洲欧洲在线| 久久亚洲国产精品成人av秋霞| 午夜精品久久久久久99热软件| 成人伊人精品色xxxx视频| 永久免费精品影视网站| 91人人爽人人爽人人精88v| 欧亚精品在线观看| 一区二区在线免费视频| 日本久久久久久久久久久| 操日韩av在线电影| 欧美日韩亚洲系列| 成人乱人伦精品视频在线观看| 日韩一二三在线视频播| 亚洲欧美第一页| 欧美色视频日本高清在线观看| 欧美午夜影院在线视频| 久久久人成影片一区二区三区观看| 91精品国产综合久久男男| 亚洲理论在线a中文字幕| 91wwwcom在线观看| 成人在线视频网站| 精品视频久久久| 国产精品网站入口| 亚洲精品一区久久久久久| 欧美一区二三区| 91国产中文字幕|