【Day15】Enzyme的两个常用渲染API及Jest的几个API,和..设计测试的几个要点 (・θ・)

为了让我们的测试看起来乾净,就跟写Code一样,
浅显易懂是原则,所以我们要把握以下两点!

  • DRY(Don't Repeat Yourself) => 将重复的code写成共用function,靠传入的参数并将结果进行return
  • 写上Test和Test Function的注解 => 单元测试的名称最好就可以描述该测试所执行的内容

先来介绍Enzyme 的Shallow 和 Mount 两个渲染的API吧~

  • Shallow: 适用於单元测试,而且可以确保我们的测试不会影响任何子类别Component的行为

    • 传入的是整个要测试的Component

    • 比较常用的function

      • find() : 在渲染出来的Component上面找寻某个节点
      • filter() : 在渲染出来的Component上过滤掉某的节点
      • contains() : 看看某个节点是否有出现在渲染出来的Component上
      • hasClass() : 判断某个节点上是否含有某个Class ( 跟jquery的hasClass一样 )
  • Mount: 适用於有多个Component会互相影响的时候,
    使用这种渲染方式在测试里,被用到的DOM都会互相影响

    • 传入的参数和常用的function其实和shallow一样,差别只是在於不同的用途

再来介绍几个 JEST的function吧~

  • expect() : 用来测试某个值,通常会搭配其他function,很少会单单只呼叫这个function
  • toBe() : 测试某个值是不是符合自己期望的值,传入的是自己期望的值 (可以搭配expect作使用)
  • toEqual() : 测试 expect的值是不是跟传入的值相等
  • toHaveLength() : 测试某个值是不是符合所要的长度,传入的是数字

上面是Enzyme 两个渲染API的比较和 JEST的一些function的简单介绍,
後续在写测试的时候都会用到~

下一篇! 要来说明怎麽样让同样的Code写成共用function,
让我们的测试Code看起来简洁有力,

用的会是我们最最最基本的两个function

  • 渲染Component的function
  • 寻找节点的function

<<:  Day.7 保有日常备份重要性 - binlog 解析 &备份资料 (mysqldump / binlog)

>>:  自动化测试,让你上班拥有一杯咖啡的时间 | Day 1 - 前言

Day 24 [Python ML、资料视觉化] 如何选择图表型态

你学到了甚麽? 我们可以将学到的图表分为3类 Trends - 可以定义一种变换的模式 sns.li...

Day 29 | Unity 游戏开发 - 专案管理工具

在上一篇文章中完成Unity游戏开发的最後一环,今天我们要来谈谈专案过程中所用到的工具 目录 专案发...

[Lesson8] MediaPlayer

activity_main: 在LinearLayout中加入播放/暂停、停止、循环的按钮 <...

android studio 30天学习笔记-day 9-rxjava2补充

昨天介绍rxjava2简单的写法,今天会介绍rxjava2其他的做法 Observables RxJ...

Day07 X Image Sprites

经过昨天的一番折腾,我想读者们都对基本的图片优化稍有概念了,今天要介绍的优化技巧其实严格来说也算是...