【Day24】来到了测试的总整理啦 ヽ(‘ ∇‘ )ノ

来到测试的尾声,来把前面所学的整理一下吧!

  • First Step => 要进行测试,我们势必要有东西给它测试,而且也要有可以进行测试的套件

    • 利用以下指令来建立专案

      npx create-react-app  专案名称
      
    • 执行以下指令来安装Jest

      npm install --save-dev jest
      
    • 再来执行以下指令来安装Enzyme (目前官方react版本17尚未支援Enzyme,但可以安装非官方版本的Enzmye来搭配版本17)

      npm install --save-dev enzyme jest-enzyme enzyme-adapter-react-16/@wojtekmaj/enzyme-adapter-react-17
      
    • 安装其他刻划版面时会用到的套件 (bootstrap or fontawesome..等等)

  • Second Step => 安装完所有我们所需的套件後,将渲染和取得元素写成共用的function以便每次单元测试使用

    • 透过Shallow渲染 : 参数放要渲染的Component

      const setup=()=>shallow(<App/>);
      
    • 取得DOM : wrapper传入的是被渲染的Component,value则是data-test属性的值

      const findByTestAttribute=(wrapper,value)=>wrapper.find(`[data-test='${value}']`);
      
  • Third Step => 透过共用function setup 渲染出Component後,利用共用function findByTestAttribute去寻找DOM,且透过Enzyme的API去针对DOM做测试 (ex: text(),isEmpty()等等)

  • Last Step => 透过上述完成单元测试後进行存档,执行npm test 就可以看看测试是否成功罗 !


先前有提到写测试的目的是为了要测试APP应该要做什麽,而不是APP是怎麽运行的

这句话的意思是我们应该要去看APP做什麽事情出来的结果是不是正确的 (我们要先想好结果为何)

而不是去照着APP运行写测试。

重点

  • 在写测试时发现有太多重复的code,需要整理成共用的function
  • 从单元测试的名称最好就能浅显易懂知道这个单元测试在做什麽 (可以的话附上注解)

以上!! 统整完毕~ 下一篇要来补充React Class Component的生命周期 ,再来还会有Function Component的Hook生命周期、Redux补充、React Query补充、

小菜鸟本身踩到的小地雷补充...等等的

那我们就下一篇见啦~ (〜^∇^)〜


<<:  [Day11] Face Detection - 使用OpenCV & Dlib:Dlib HOG + Linear SVM

>>:  Day12: GuardDuty单一帐号/Org.布建、测试结果产生

Day 28: 人工智慧在音乐领域的应用 (伦敦-Jukedeck、纽约-Amper Music 、OpenAI-Jukebox)

今天我们继续介绍一些比较知名的AI作曲的公司/软件。 Jukedeck Jukedeck可以说是AI...

python 中 pickle 读档问题的解决方法

前言 要读取 .pkl 档,结果遇到各种状况,在网路上查了许多资料後终於解决了! 在这边简单做个过程...

Day26 跟着官方文件学习Laravel-Service Provider

昨天我们说到 Service Container 是一个地方绑定你类别如何产生出来,或者是你想将 i...

[Day 8] SRE - 火炎焱燚之保卫战

火烧起来怎麽办? 当你听到手机有叮咚叮咚,一连串的alert表示服务已无法继续服务,几分钟後电话来了...

我的ISACA考试经验分享

去年(2018)通过CISSP考试後,觉得CISSP在 资讯安全治理 及 风险管理 的领域谈得不够...