<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ###測試目錄結構### 測試文件主要在tests文件下面,主要有以下幾個文件夾 - mock 小核心文件,用于做文件加載,引入框架等操作。 - framework 真正的測試文件,和項目文件夾機構一致,但是里面都是測試文件 - think - application - public - tests - thinkphp - 其他文件 ###準備工作### 1. 判斷渲染,若果是測試環境則不執行測試,主要在library/think/app.php文件中,修改其中的第116行: `if (defined('IN_UNIT_TEST')) { return $data; } else { Response::returnData($data, Config::get('default_return_type'), Config::get('response_exit')); }` 和129行 `if (defined('IN_UNIT_TEST')) { return $data; } else { Response::returnData($data, Config::get('default_return_type'), Config::get('response_exit')); }` 2. 修改config.php,添加重置配置函數: `// 重置配置參數 public static function reset($name, $value = null, $range = ''){ self::$config = []; }` 3. 添加mock文件,在文件中添加單元測試定義,以及請求定義,否則報錯。 `<?php // 測試入口文件 define('IN_UNIT_TEST', true); $_SERVER['REQUEST_METHOD'] = 'GET'; // 定義項目路徑 define('APP_PATH', __DIR__ . '/../application/'); // 開啟調試模式 define('APP_DEBUG', true); // 加載框架引導文件 require __DIR__ . '/../thinkphp/start.php';` ###主要測試流程### thinkphp5的測試的主要流程是跟think的系統流程是相似的,大體的流程為: 1. 引用bootstrap文件加載mock里的小框架文件,加載所需文件 2. 根據文件目錄,添加測試文件 3. 執行單元測試,輸出結果 ###測試舉例### 例如測試thinkphp里的apc緩存,將分為以下幾個過程: 1. 在tests/framework文件夾下創建于apc.php目錄路徑(thinkphp\library\think\cache\driver)相同的apcTest.php文件。 2. 編寫測試文件 - 引用app和config `use think\app; use think\config;` - 在setUp函數中設定require條件 `if(!extension_loaded('apc')){ $this->markTestSkipped('apc擴展不可用!'); };` - 編寫測試用例 ` public function testGet() { \think\Cache::connect(['type' => 'apc', 'expire' => 1]); $this->assertTrue(\think\Cache::set('key', 'value')); $this->assertEquals('value', \think\Cache::get('key')); $this->assertTrue(\think\Cache::rm('key')); $this->assertFalse(\think\Cache::get('key')); $this->assertTrue(\think\Cache::clear('key')); Config::reset(); }` 3. 回到根目錄執行單元測試命令: `phpunit` 若想看到所有結果,請添加-v參數 `phpunit -v` 4. 輸出結果 ###大家一起來### 單元測試的內容會跟框架同步,測試內容方方面面,是一個相對復雜的模塊,同時也是一個值得重視的部分。希望大家能夠多多提出意見,多多參與。如果你有任何問題或想法,可以隨時提issue,我們期待著收到聽大家的質疑和討論。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看