Day 4 jest的生命周期

BeforeAll、BeforeEach、AfterEach、AfterAll

的四个生命周期,这四个牵扯到一个重点scope(范畴),每一只测试档案都有local与global的范围,因此当我们做测试时,是否会更改global的范围进而影响到别的测试案例.先举个例:

https://ithelp.ithome.com.tw/upload/images/20210920/20120076kF1dVVJuZT.png

当我们看到这个简单的案例,会知道我们在最外面放一个全域的物件,当我们执行第一个测试案例时,他会更改我们name key的value所以导致我们在执行第二次测试案例时印出来的log会是第一个测试案例更改後的值,这会造成之後的测试案例出错.log如下

https://ithelp.ithome.com.tw/upload/images/20210919/20120076TTV8WMCv39.png


所以这时候就需要我们的beforeAll、beforeEach、afterEach、afterAll执行顺序为

  1. BeforeAll
  2. BeforeEach → 每个test case 前都会执行一次
  3. AfterEach → 每个test case 後都会执行一次
  4. AfterAll

这简单案例,我就先用AfterEach来修正刚刚的错误.

https://ithelp.ithome.com.tw/upload/images/20210920/20120076zgJ6geF3dn.png

我在afterEach执行恢复原始状态

https://ithelp.ithome.com.tw/upload/images/20210919/201200763PpN9zpjP0.png

因此我们可以透过这四个生命周期,来阻止对於模组的污染.


<<:  不只懂 Vue 语法:什麽是单向资料流和双向绑定?

>>:  LiteX/VexRiscv 简介与使用 (二点五) 天地分隔

Day15 跟着官方文件学习Laravel-实作API(二)

今天我们要继续实作store,昨天我们已经完成service了,今天应该不难。 public fun...

Day 17 网页分析 - Web Application Analysis (WhatWeb)

WhatWeb是一个用来分析网站的工具,拥有超过1800种的插件来分析网站,包括服务器类型、版本、I...

有向无环图

有向无环图 (Directed Acyclic Graph, DAG) 指的是从点出发用有方向的箭头...

[FGL] 开发一个类似MDI的操作介面

在网页上,在功能较多的网页,常可以看到下列两种介面 样式A 功能选项在上方:可以利用 TOOLBAR...

【从实作学习ASP.NET Core】Day24 | 前台 | Session 购物车 (2)

接续昨天的内容,今天要配合 SessionHelper 来完成购物车的主要功能 需要完成购物车的模型...