• 前端单元测试 从0到0.1


    背景:

    这段时间在学习lodash源码,以提升自己的函数编程水平。从github上下载源码之后,发现人家的源码 每个函数都有一个对应的test.js文件。而我写一个函数 就需要不断的通过script标签导入到一个html文件中,然后在浏览器环境中验证。步骤非常繁琐,而且一点也没有技术含量。所以 查资料学习了一些关于单元测试的知识。

    单元测试必要性

    单元测试其实就是白盒测试,以函数为粒度 通过测试框架,断言库API 来实现测试的目的。

    这里要说一下我学lodash的步骤,我是先去官网查看函数定义,根据这个函数的作用定义,自己先写代码实现一遍,然后再对照源码,分析差距。所以我很符合测试驱动的场景。所以需要引入单元测试。

    理想状况是 我看完函数定义,就将测试用例写好,然后写好测试文件,在开始编写自己的函数。

    测试基本概念

    测试分为两类:单元测试(unitTest) 和端到端测试(e2e)。单元测试以函数为一个单元,假定好入参和出参 。测试函数是否正常执行。常见于开发自测。

    端到端测试 是功能性的测试,通过执行点一个按钮,输入一些数据 等动作,看是否达到预期的效果。一般来说 测试人员用的比较多。

    单元测试常用的工具: 测试框架+断言库

    断言库:

    断言库有很多种 常见的有assert,chai。我只用了assert,因为node自带。它其实就是一些判断条件,满足条件认为true。否则是false。

    断言和if判断的区别是 断言识别非法情况,if判断错误情况。断言为false会自动中断程序。if如果是false的话 理论上来说 还是要写一些处理逻辑的。

    如果单独使用断言库 需要将断言语句写在要测试的函数内部。 这样函数会很长。不好。如果函数需要发布到生产环境 还需要加上 #defin NOEBUE 来禁用断言。

    测试框架:

    测试框架就更多了,mocha, Karma等。

    因为断言库的不方便单独使用,所以一般来说,我们都是配合着测试框架一起使用的。有的测试框架是自带断言库的,也可以单独使用一个测试框架 配合着自己导入的断言库。

    导入测试框架的话 就需要一个工程了,不能在一个js文件里瞎搞了。

    需要建立一个node项目 运行 npm init 可以快速获取一个node项目。 建好项目引入测试框架后,就可以用命令行 在node环境中 测试了。

     

     

  • 相关阅读:
    UVALive 4730 Kingdom +段树和支票托收
    zoj 3537 Cake (凸包确定+间隔dp)
    SVN在branch兼并和游戏patch(1)
    拍卖倒计时
    java基金会成立
    HDU1532 Drainage Ditches 【最大流量】
    leetcode-WordLadder
    Andriod Studio科普文章——3.大约gradle常见问题插头
    android Graphics(三):区域(Range)
    android Graphics(二):路径及文字
  • 原文地址:https://www.cnblogs.com/ada-blog/p/12603865.html
Copyright © 2020-2023  润新知