前端单元测试

来源:互联网 发布:新游上线软件 编辑:程序博客网 时间:2024/05/29 03:02
  1. 什么是单元测试,为何要用
    单元测试是用来确认某段代码或模块或接口是否适合使用。随着项目规模的增加,函数、方法、变量都在递增,各种Bug报告会让原本整洁的代码变得一片混乱。对项目代码进行重构时,如何确定项目仅仅是被重构了,而不是被改写了?此时单元测试将是一根救命稻草,它是一个衡量标准,告诉开发人员这么做是否将改变结果。保证了产品的安全性和稳定性。
  2. 测试框架通常提供TDD(测试驱动开发)或BDD(行为驱动开发)的测试语法来编写测试用例。
    BDD(行为驱动开发)的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识。它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法。

    TDD(测试驱动开发)需要遵循如下规则:

    • 写一个单元测试去描述程序的一个方面。
    • 运行它应该会失败,因为程序还缺少这个特性。
    • 为这个程序添加一些尽可能简单的代码保证测试通过。
    • 重构这部分代码,直到代码没有重复、代码责任清晰并且结构简单。
    • 持续重复这样做,积累代码。
      衡量是否使用了TDD的一个重要标准是测试对代码的覆盖率,覆盖率在80%以下说明一个团队没有充分掌握TDD
  3. JS测试主要使用到的工具是测试框架、断言库以及代码覆盖率工具:

    • 测试框架:Mocha,Jasmine,Jest,Karma
    • 断言库:Chai,Should,assert,Jasmine,Jest
    • 代码覆盖工具:Istanbul,Jest,Karma-Coverage
      三种工具各选一个配合使用,一般常见为mocha+chai、mocha+should、jest
  4. 浏览器测试工具
    对于浏览器里跑的前端代码,做测试要比Node.js模块要麻烦得多。Node.js模块纯js代码,使用V8运行在本地,测试用的各种各样的依赖和工具都能快速的安装,而前端代码不仅仅要测试js,CSS等等,更麻烦的事需要模拟各种各样的浏览器。
    前端代码是运行在浏览器中的,要对其进行单元测试,只能将其运行在浏览器上。目前大部分测试工具都支持调用和运行本地浏览器来进行测试,但如果你的测试仅仅是针对函数和模块的单元测试,则完全可以使用一款无界面的浏览器,工具:Puppeteer,Phantom。相关链接:https://cloud.tencent.com/community/article/529168
  5. 常用语法
    • mocha提供API。describe块称为”测试套件”(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称(”index.js的测试”),第二个参数是一个实际执行的函数。
    • it块称为”测试用例”(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称(”1应该是数字”),第二个参数是一个实际执行的函数。
  6. 6.
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 玉石带久了不亮怎么办 手表带久了不亮怎么办 蜜蜡带久了不亮怎么办 钛钢首饰不亮了怎么办 潘多拉玫瑰金戒指褪色了怎么办 金色手表漆掉了怎么办 玫瑰金表带褪色后怎么办 K金褪色或泛黄怎么办 钛钢玫瑰金变黑怎么办 玫瑰金手镯掉色了怎么办 彩金颜色不亮了怎么办 玫瑰金链子黑了怎么办 18k玫瑰金变黑了怎么办 玫瑰金戒指遇到火变黑怎么办 18k白金发黄了怎么办 18k金掉色后怎么办吗 dw手表金色掉漆怎么办 dw玫瑰金手表褪色怎么办 dw金色表带黑了怎么办 机械表机芯坏了怎么办 银镀玫瑰金褪色怎么办 苹果七p玫瑰金掉漆怎么办 美度镀金表掉色怎么办 吃了发黑的香菇怎么办 脸上的皮肤暗黄怎么办 吃了变黑的香菇怎么办 怀孕喝了玫瑰茶怎么办 孕妇爱喝茉莉茶怎么办 干菊花生虫了该怎么办 黑枸杞放了两年怎么办 来大姨妈喝茶了怎么办 干柠檬片过期了怎么办 山地玫瑰根黑了怎么办 带18k的金过敏怎么办 18k钻戒断了怎么办 18k钻戒戒托变色怎么办 苹果七中间按键脱漆怎么办 苹果手机屏幕边缘掉漆了怎么办 十八k白金变色了怎么办 手机后面掉漆了怎么办 玫瑰金戒指刮花了怎么办