1. 程式人生 > >Symfony4中的單元測試接口測試

Symfony4中的單元測試接口測試

單元測試 新手 試用 好的 16px guzz 說明 阻塞 website

前提說明:

symfony 版本 4.1.*,使用 composer create-project symfony/website-skeleton 進行安裝。

目標:在一個單元測試用例中對當前工程中的接口進行測試。使用PHPUnit。

坑1(發送請求使用 browser-kit):

browser-kit 只能對當前的應用進行發送接口請求,而且請求是不經過 index.php 的。

這樣導致的問題就是如果當前的應用都是按照官方的指導配置去配置的話,比如數據庫連接配置在 .env 中,那麽如果請求不經過 index.php 的話,就無法加載 .env 文件。也就無法連接數據庫。想實現加載 .env 中配置的話就需要修改框架結構,這對新手是很不友好的。

但是,可以使用 xdebug 進行調試,因為是在同一個進程中。

坑2(發送請求使用 curl):

比如使用 GuzzleHttp,這樣發送出去的請求是一個真正的 http 請求,因此會完整的按照 http 請求方式去執行,如同一個真正的請求發過來。

這樣是會經過 index.php 的,也就無需對框架結構進行調整。

但是,這樣的話由於不是當前的進程,那麽如果想使用 xdebug 是不可能的,因為 xdebug 一旦開啟監聽就會阻塞所有的 php-fpm 進程。

Symfony4中的單元測試接口測試