TDD jest鉤子函式

2021-10-02 13:39:38 字數 3334 閱讀 9193

文章** 前端自動化測試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 統計任務每秒中都會呼叫這個函式,此函...