Koa入門(三) Koa專案自動化測試

2021-10-05 18:33:15 字數 3179 閱讀 5956

當我們做專案時,寫完乙個功能後都要進行測試,js中測試框架一般使用:mochachai,如果你還需要測試介面的話,可能還需要supertest測試框架。

安裝依賴:yarn add mocha chai supertest -d

比如我現在寫個密碼加密,密碼驗證的工具:

密碼加密一般用的比較多的是:md5bcrypt,這裡使用 bcrypt

yarn add bcrypt

// src/main/util/passwordutil.js

import bcrypt from

'bcrypt'

;// 鹽值

const

salt=10

;/**

* 加密密碼(非同步)

* @param pwd 要加密的密碼

* @returns 加密後的密碼

*/export

const encryptpasswrod =

async

(pwd)

=>

;/**

* 密碼驗證(非同步)

* @param pwd 密碼

* @param encryptedpwd 加密後的密碼

* @returns 驗證成功返回 true

*/export

const checkpasswrod =

async

(pwd, encryptedpwd)

=>

;/**

* 加密密碼(同步)

* @param pwd 要加密的密碼

* @returns 加密後的密碼

*/export

const

encryptpasswrodsync

=(pwd)

=>

;/**

* 密碼驗證(同步)

* @param pwd 密碼

* @param encryptedpwd 加密後的密碼

* @returns 驗證成功返回 true

*/export

const

checkpasswrodsync

=(pwd, encryptedpwd)

=>

;

// src/test/util/passwordutil.test.js

import

from

'chai'

;import

from

'@main/util/passwordutil'

;describe

('密碼工具測試'

,async()

=>);

it('#非同步密碼加密、驗證測試(結果應為false)'

,async()

=>);

it('#同步密碼加密、驗證測試(結果應為true)',(

)=>);

it('#同步密碼加密、驗證測試(結果應為false)',(

)=>);

});

因為我不是全域性安裝mocha所以不能直接使用mocha命令,應該使用./node_modules/mocha/bin/mocha

我測試**全部放在了src/test目錄下,並且根據不同層次的分目錄(例如:工具測試在util目錄,介面測試放controller目錄),所以需要加引數:./node_modules/mocha/bin/mocha ./src/test --recursive

因為這裡使用了import等 node 不支援的語法,這裡使用了babel所以還需要新增引數:./node_modules/mocha/bin/mocha ./src/test --recursive --require babel-register

// src/test/controller/usercontroller.test.js

;import request from

'supertest'

;import

from

'chai'

;describe

('使用者介面測試',(

)=>);

after((

)=>})

;it('#使用者新增測試'

,async()

=>).

expect

('content-type'

,/json/).

expect

(200).

expect

(res =>);

});it

('#使用者查詢測試'

,async()

=>`)

.expect

('content-type'

,/json/).

expect

(200).

expect

(res =>);

});it

('#使用者更新測試'

,async()

=>

;await

request

(server)

.put

(`/api/user`).

send

(user)

.expect

('content-type'

,/json/).

expect

(200).

expect

(res =>);

});}

);

我自定義了全域性統一返回格式:

}

在**裡我設定了全域性異常處理,出現錯誤,這裡的code欄位會變為500等其他非200數值,所以需要根據響應體的code === 200欄位來判斷介面是否成功。

gitee原始碼檢視

robot framework 介面自動化測試

介面測試比ui測試更有價值,如果專案時間緊張,測試介面更好一些,但每次都頻繁的手工填寫介面進行測試也浪費時間,下面給大家介紹一下很好的自動化測試框架robot framework,並且做介面自動化測試事半功倍。其返回值驗證和與資料庫連線進行增刪改查很方便,邏輯也很嚴謹,如果公司沒有造輪子推薦這麼做。...

Robotframework 介面自動化測試

1.目的 1 以雲平台為例 實現註冊 登入 更新apikey 新增專案 新增裝置 新增感測器 新增執行器 感測器每隔3s上報一次資料 1分鐘後與雲平台主動斷開連線的介面自動化測試。2 斷言每條用例是否執行成功。3 程式不管執行多少次都不報錯。2.robotframework環境搭建 1 安裝pyth...

python requests介面自動化測試 一

python requests環境部署 1.安裝python,配置系統環境變數 4.安裝requests庫 pip install requests 在進行介面自動化測試時,常用到的幾個requests庫方法。如下 get 不帶引數的請求 n requests.get 帶引數的請求 引數是以字典的形...