前端测试(3) ---单元测试学习记录

本文详述了前端单元测试的重要性,包括BDD和TDD两种模式,并探讨了适合做单元测试的内容。文章以mocha+should.js为主,介绍了如何设置测试框架、断言库,以及使用karma进行测试工具配置。还讨论了mochawesome生成测试报告和Travis CI的集成,最后提到了测试覆盖率的计算方法。
摘要由CSDN通过智能技术生成

单元测试学习记录

单元测试类型
  • BDD
      Behavior Driven Development , 行为驱动开发是一种敏捷软件开发的技术 , 它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。
      BDD侧重设计 , 其描述的行为就像一个个的故事(Story),系统业务专家、开发者、测试人员一起合作,分析软件的需求 , 然后将这些需求写成一个个的故事。开发者负责填充这些故事的内容 , 测试者负责检验这些故事的结果。结合场景设置,基本就完成了一个完整测试的定义。
  • TDD
      Test-Driven Development , 测试驱动开发 , 它是一种测试先于编写代码的思想
      TDD侧重点偏向开发,通过测试用例来规范约束开发者编写出质量更高、bug更少的代码。
前端为什么要做单元测试
  • 帮助检验代码写的更规范,因为要通过测试就要求单元之间解耦,不然无法通过测试
  • 已经发布了的代码有所改动,如果有单元测试,方便代码回归,省下全局相关功能再测试一遍的低效。
  • 一般测试代码会先于功能代码先写。先写测试代码会考虑功能代码的实现细节,理清功能代码的实现逻辑。
哪些内容适合做单元测试

  项目中的库文件,公共组件,是项目的公共引用的功能,不常被改动。一旦有改动,通过测试能及时发现问题,不会导致引用了这个公共功能的地方报错。常常有需求变动的业务代码不适合做单元测试。

学习涉及的测试框架、断言库、测试工具和CI
  • mocha: 单元测试框架
  • node内置的assert模块: 断言库 , TDD风格
  • should.js: 断言库 , 属于BDD风格
  • chai.js: 断言库 , BDD/TDD风格 , 同时支持should、 assert、expect , 有强大的插件机制
  • karma: 测试工具 , 可以监控文件的变化 , 然后自行执行 , 通过浏览器控制台显示测试结果 , 能够模拟各种环境来运行你的测试代码比如Chrome, Firefox,mobile等等
  • Travis CI: 提供持续集成服务(Continuous Integration,简称 CI)。通过配置绑定你github上的项目,并且配置运行环境,实现只要github上有代码更新,travis就会自动运行构建和测试,并反馈运行结果。
单元测试(一): mocha+should.js
  1. 准备
    cd ~/desktop
    mkdir nodejs-test
    cd nodejs-test
    mkdir test
    mkdir lib
    
  2. 安装模块
    npm init -y
    npm install mocha --save-dev
    npm install should --save-dev
    
  3. 编辑一下 package.json,修改一下 script 下面的 test 的值, 此处mocha为本地安装
    "test": "./node_modules/mocha/bin/mocha"
    
  4. 配置mocha.opts
    	--require should
    
    mocha.opts的更多配置(代替命令行参数):https://mochajs.org/#mochaopts
  5. 添加测试用例
    // test/test.js
    var add = require('../lib/add');
    describe('大数相加add方法', function () {
           
    	it('字符串"1"加上字符串"2"等于"4"', function () {
             
    		add('1', '2')      
    			.should.equal('4')
       }) 
    	it('字符串"42329"加上字符串"21532"等于"63861"', function () {
             
    		add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值