51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4430|回复: 0
打印 上一主题 下一主题

[转贴] 关于Javascript单元测试,为什么要做以及怎么做

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:02
  • 签到天数: 1046 天

    连续签到: 4 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-1-18 09:54:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     3、断言
      Jest中自带了丰富的断言方法,基本上能满足我们所有的使用场景:
      (1)、判断两个值是否相等
      判断两个值是否相等,可以使用toBe()、toEqual();这两个断言也是用的最多的;但是这两个断言方法有些区别,刚开始用的时候,容易搞错:
      toEqual()比较的是两个值是否相等;
      toBe()不仅比较值,而且还会比较属性;
      所以,我们在比较number\bool\string时,toBe和toEqual都可以使用;如果比较的是对象,而你只想对比它的值,建议使用toEqual();这两个的区别类似于比较运算符中的==、===的区别。
      例子:


    (2)、用来测试值相反
      判断预期值和实际值相反,则使用not:
    1. expect(false).not.toBeTruthy()
    2. expect(xx).not.toBeUndefined()
    复制代码
      (3)、匹配布尔值
      toBeNull 只匹配null
      toBeTruthy 匹配任何为真的语句
      toBeFalsy 匹配任何为假的语句
      toBeDefined 与undefined相反
      toBeUndefined 只匹配undefined
    1.   [color=#3e3e3e]expect(xx).toBeUnDefined()[/color]
    复制代码
    (4)、匹配对象
      toMatchObject(object) 判断对象
      toHaveProperty(keypath, value) 判断指定path下是否有这个属性以及值

    (5)、其他一些断言使用
      resolves 和 .rejects - 用来测试 promise


    当然,你如果了解promise的用法,也可以使用其他办法来检查,比如:
      检查红框中的返回值,返回的是一个promise对象

    用例:

    toHaveBeenCalled() - 用来判断一个函数是否被调用过,这个相当有用,在很多被测试的函数中,也许并没有返回值,但是会有一些回调函数作为参数传递给被测试函数,此时我们可以检查该回调函数是否被执行以及检查回调函数本身返回的数据;或者mock掉某个被调用函数之后,为了检查是否走入到该分支,也可以通过该mock函数是否被执行来检查测试。

     toHaveBeenCalledTimes(number) - 判断函数被调用过几次。
      toContain() 判断实际值是否包含预期值。

    注:其他更多用法,可以参考官网~
      4、覆盖率
      Jest框架集成了覆盖率工具,执行的时候只需要加参数—coverage即可,如图:
      Jest –coverage ./ 会自动寻找当前目录下文件名带test的文件来执行

    注意:这里展现的覆盖率,会把涉及到的文件都算进去,比如:被测试文件调用了abc三个文件,那abc这三个文件的覆盖率都会呈现出来,但其实我们关注的可能只是被测试文件这一个。

    5、将结果写入指定文件
      这个对于我们以后去做自定义结果展示的时候,会非常有用,可以把里面无用的信息剔除掉,只展示需要的信息即可;比如:你的被测试文件中调用了其他文件中的方法或者类,此时按照框架给的图标结果,他会将被测方法中调用的文件代码覆盖数据也会展示出来,但这个文件并不是我们想展示的。执行命令为:
      jest --json --outputFile="./test.txt" 以json的格式输出并保存为test.txt文件中。



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 06:03 , Processed in 0.065207 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表