文章** 前端自動化測試jest教程5-鉤子函式
export
default
class
compute
addone()
addtwo()
minusone()
minustwo()
}
import compute from
'./index'
const compute =
newcompute()
beforeall((
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)test
('測試 addone',(
)=>
)test
('測試 minusone',(
)=>
)
執行一下檢視結果
這裡可以看到測試用例全部通過,重點是鉤子函式的執行順序
最先執行 外部定義的 beforeall
—beforeeach—和---aftereach—執行了兩邊,因為有兩個測試例項
最先執行 外部定義的 afterall
這裡兩個測試例項相互之間影響了,共用了乙個compont例項,我們可以將 const compute = new compute() 放在beforeach裡面就可以解決了,每次測試例項之前先重新new compute
describe 的作用?
describe相當於乙個塊,可以將測試用例放在乙個塊中
;個人理解就是分類
修改 index.test.js 中的**
import compute from
'./index'
let compute =
null
beforeall((
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)describe
('測試加法',(
)=>
)test
('測試 addtwo',(
)=>)}
)describe
('測試減法',(
)=>
)test
('測試 minustwo',(
)=>)}
)
這樣修改完後,測試例項之前不會相互影響,並且將測試分成了兩個塊之前我們寫測試用例都沒有加 describe ,預設情況下,是有乙個 describe 在外面包裹的,是可以省略
describe 方法裡面也是有以上4個鉤子函式的,因此我們在裡面寫上鉤子函式,並檢視他們的執行順序
import compute from
'./index'
let compute =
null
beforeall((
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)describe
('測試加法',(
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)test
('測試 addone',(
)=>
)test
('測試 addtwo',(
)=>)}
)describe
('測試減法',(
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)test
('測試 minusone',(
)=>
)test
('測試 minustwo',(
)=>)}
)
這裡一定要執行一下,檢視這幾個鉤子的執行順序,太長,我只貼補部分列印
再思考一下,如果我們不在測試例項中寫入一些**,執行順序是怎樣的呢???
import compute from
'./index'
let compute =
null
console.
log(1)
beforeall((
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)describe
('測試加法',(
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)test
('測試 addone',(
)=>
)test
('測試 addtwo',(
)=>)}
)describe
('測試減法',(
)=>
)afterall((
)=>
)beforeeach((
)=>
)aftereach((
)=>
)test
('測試 minusone',(
)=>
)test
('測試 minustwo',(
)=>)}
)
執行 npm run test 檢視結果
這裡可以看到 1 2 3 最先被列印,隨後再去執行鉤子函式,也就是說不在鉤子函式和測試用例中的**,會被最先執行
,因此在寫測試用例的時候防止**執行的不確定性,我們一定要把**寫在鉤子函式或者測試用例裡面
mounted鉤子函式 對vue中鉤子函式的理解
1 beforecreate 鉤子 該階段元件例項剛建立,元件屬性計算之前 可理解為元件屬性還未初始化,未繫結,未掛載元素el 比如 el,data,methods等,如果你試圖在beforecreated鉤子中獲取這些屬性值,會得到ubdefined 的結果,但是 可以獲取到this物件,因為此時...
mysql 鉤子函式 Flask鉤子函式是什麼
flask鉤子函式 在flask中鉤子函式是使用特定的裝飾器的函式。為什麼叫做鉤子函式呢,是因為鉤子函式可以在正常執行的 中,插入一段自己想要執行的 那麼這種函式就叫做鉤子函式。before first request flask專案第一次部署後會執行的鉤子函式。before request 請求已...
UCOS III 鉤子函式
鉤子函式一般主要是用來擴充套件其他函式 任務 功能的,鉤子函式有如下幾個 1 osidletaskhook 空閒任務呼叫這個函式,可以用來讓 cpu進入低功耗模式2 osinithook 系統初始化函式 osinit 呼叫此函式。3 osstattaskhook 統計任務每秒中都會呼叫這個函式,此函...