為了確保 API 的各個路由能夠返回預期結果,我們將使用 Deno 提供的內置測試工具來驗證代碼覆蓋率,并通過基準測試評估性能。
我們創建了一個名為 main_tests.ts 的文件,用于編寫測試代碼。以下是測試的主要邏輯:
fetch() 方法進行請求操作。測試代碼示例如下:
// 示例代碼略
除了驗證響應內容,我們還需要測量響應時間。Deno 提供了內置的基準測試工具,可以通過文件名后綴 _bench 自動識別基準測試文件。
我們創建了一個名為 main_bench.ts 的文件,內容如下:
// 示例代碼略
基準測試的重點在于測量請求從發起到結束所需的時間,而非客戶端解析響應的時間。通過這種方式,我們可以更準確地評估 API 的性能。
為了將項目部署到容器中,我們需要配置以下兩個文件:
docker-compose.yml:定義容器的詳細信息。Dockerfile:用于構建 Docker 鏡像。以下是 Dockerfile 的主要內容:
# 示例 Dockerfile 略
該文件會設置工作目錄,將項目文件復制到 /app,并通過 deno-cache 緩存依賴項。最終,容器啟動時會運行 task start 命令,該任務已在 deno.json 中定義。
在終端中運行以下命令即可啟動容器并構建鏡像:
$ docker compose up --build
啟動完成后,你可以通過 Docker 桌面應用程序查看構建的容器。
在容器啟動后,可以通過以下命令運行測試:
$ deno test -A
測試結果如下圖所示:

接下來,通過以下命令運行基準測試:
$ deno bench -A
基準測試結果如下圖所示:

在基準測試中,我們發現中間件中存在大量冗長的日志記錄。通過禁用控制臺輸出,可以顯著提升性能。以下是優化步驟:
main.ts 文件,找到記錄請求的中間件函數 reqLogger()。$ deno task dev
需要注意的是,基準測試的具體數值可能因本地設備配置而異。
Deno 提供了將基準測試結果導出為 JSON 格式的功能,便于實現自動化基準測試和數據可視化。使用以下命令導出數據:
$ deno bench -A --json
通過本教程的第二部分,我們已經完成了以下任務:
接下來,你可以繼續擴展項目,連接真實的數據存儲,完善路由邏輯,并進一步優化測試和基準測試流程。
原文鏈接: https://deno.com/blog/build-api-express-typescript-pt2