美文网首页
第一周预习

第一周预习

作者: hyt222 | 来源:发表于2019-03-17 02:06 被阅读0次

Mocha

Mocha 是用于 Javascript 测试的框架。浏览器和 node 环境都可以使用。
安装
npm install --global mocha
package.json 配置
"scripts": {
"test": "mocha"
}

测试脚本的写法

通常,测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js(表示测试)或者.spec.js(表示规格)。比如,add.js的测试脚本名字就是add.test.js。
var assert = require('assert');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal([1, 2, 3].indexOf(4), -1);// 预期 [1, 2, 3].indexOf(4) == -1
});
});
});
测试脚本里面应该包括一个或多个describe块,每个describe块应该包括一个或多个it块。
describe块称为"测试套件"(test suite),表示一组相关的测试。第一个参数是测试套件的名称("Array"),第二个参数是一个实际执行的函数。
it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。第一个参数是测试用例的名称("should return -1 when the value is not present"),第二个参数是一个实际执行的函数。

测试

$ npm test

或者

$ mocha test.js

默认测试 test.js 文件里的内容。
两次调用 done() 会报错~

it('double done', function(done) {
  // Calling `done()` twice is an error
  setImmediate(done);
  setImmediate(done);
});

断言库

  • should.js:文档好难看懂,但是看例子用起来特别爽,链式调用很强大!
  • expect.js
  • chai
  • better-assert
  • unexpected

TDD 和 BDD 的差别

TDD: Test-driven development (测试驱动开发)
  
是一种使用自动化单元测试来推动软件设计并强制依赖关系解耦的技术。使用这种做法的结果是一套全面的单元测试,可随时运行,以提供软件可以正常工作的反馈。
在编写真正实现功能的代码之前先编写测试,每次测试之后,重构完成,然后再次执行相同或类似的测试。该过程根据需要重复多次,直到每个单元根据所需的规格运行。
个人理解,相当于根据测试用例写代码,每一次提交代码都必须要过一次测试用例,也就是单元测试。
BDD:Behavior-Driven Development (行为驱动开发)
  BDD将TDD的一般技术和原理与领域驱动设计(DDD)的想法相结合。 BDD是一个设计活动,您可以根据预期行为逐步构建功能块。
  BDD的重点是软件开发过程中使用的语言和交互。
  行为驱动的开发人员使用他们的母语与领域驱动设计的语言相结合来描述他们的代码的目的和好处。
  使用BDD的团队应该能够以用户故事的形式提供大量的"功能文档",并增加可执行场景或示例。BDD通常有助于领域专家理解实现而不是暴露代码级别测试。它通常以GWT格式定义:GIVEN WHEN&THEN。
个人理解相当于看产品文档以及交互设计稿,从用户故事这个方面检视开发功能。开始有些理解 should.js 的介绍:BDD style assertions for node.js -- test framework agnostic

Karma

Karma的主要目标是为开发人员提供高效的测试环境,他们不必设置大量配置的环境,而是开发人员可以编写代码并从测试中获得即时反馈的地方。

  1. 在真实环境中测试
  2. 支持远程控制
  3. 执行速度快
  4. 可以跟第三方 IDE 进行交互
  5. 支持 ci 服务
  6. 高扩展性,支持插件开发
  7. 支持调试

Travis CI

构建和测试的自动化工具
Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。

相关文章

  • 兔兔幸福妈妈大学平和情绪人生财富营赵锋打卡合集

    第一周任务~ 20220725 预习课程和熟悉训练营流程安排 1,预习两节课...

  • 写给19班的大家

    通过第一周的学习,我总结了如下几点,希望能给你有所帮助。 第一,预习=自学预习其实就是自己开始阅读英文原版小说的过...

  • 粤博古埃及展攻略 | 最新鲜热门的看展套路来啦!

    新年第一周,我和糊宝去看了广东省博物馆的古埃及文明特展——「尼罗河畔的回响」。 预习 预习手段主要有书籍、视频和音...

  • 第一周预习

    Mocha Mocha 是用于 Javascript 测试的框架。浏览器和 node 环境都可以使用。安装npm ...

  • 定投读书会《原则》预习

    【定投读书会】共读《原则》第一周,预习 痛苦+反思=进步! 【关于作者】 瑞.达利欧,也有翻译为雷•达里奥。 他是...

  • 马永番寒假第三天反馈

    1.水浒传预习单写了一部分 2.数学第一周作业完成 3.水浒传读了五回

  • 魏子轩今日反馈

    1配了20个《世说新语》。 2完成了第一周的数学作业。 3完成了林冲人物评价预习单。 4阅读了《马云传》三遍。 5...

  • 第一周开学放假

    今天是第一周开学后放周六周日的假了。 我今天首先预习了《荷花》,这一课,再背诵了,《燕子》1到3...

  • 2017-05-14

    每天都在预习 预习你离开 预习你们结婚 预习我一个人离开 预习我像浮萍一样飘零 预习这所有的悲伤 好让那天真正来临...

  • 2020年9月17日听课总结

    一、听三年级数学课 1.预习很重要。预习分为课前预习和课上预习。如果是课前预习可以发放导学案,如果是课上预习,不发...

网友评论

      本文标题:第一周预习

      本文链接:https://www.haomeiwen.com/subject/yahymqtx.html