116前端单元测试

116前端单元测试,第1张

概述一、jasmine简介 在jasmine中,一个典型的单元测试起始于一个全局函数describe,describe包含了N个it函数,一个it函数包含N个断言。 (1)jasmine.js : jasmine框架的核心文件。 (2)jasmine-html.js : 用于网页结果输出的js文件。 (3)boot.js : jasmine框架的的启动脚本。这个脚本的执行应该在jasmine.js加载 一、jasmine简介 在jasmine中,一个典型的单元测试起始于一个全局函数describe,describe包含了N个it函数,一个it函数包含N个断言。 (1)jasmine.Js : jasmine框架的核心文件。 (2)jasmine-HTML.Js : 用于网页结果输出的Js文件。 (3)boot.Js : jasmine框架的的启动脚本。这个脚本的执行应该在jasmine.Js加载完成之后。 (4)src.Js : 我们的业务逻辑脚本。 (5)test.Js : jasmine测试脚本。 (6)jasmine.CSS :控制网页结果输出的样式文件。 二、jasmine的API 断言是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。 (1)describe(string,function)全局函数,称为"测试套件"(test suite),表示一组相关的测试。接收两个参数;string:函数的描述;function:测试组函数 (2)It(string,function)称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。接收两个参数;string:spces的名称;function:spces函数 (3)beforeEach(function)定义在一个describe的所有it执行前做的 *** 作 (4)afterEach(function)定义在一个describe的所有it执行后做的 *** 作 (5)toBe等同于===,比较变量 (6)toEqual处理变量,数组,对象等等 (7)toMatch使用正则式进行匹配 (8)toBedefined是否已声明且赋值 (9)toBeUndefined是否未声明 (10)toBeNull是否null (11)toBeTruthy如果转换为布尔值,是否为true (12)toBeFalsy如果转换为布尔值,是否为false (13)toContain数组中是否包含元素(值)。只能用于数组,不能用于对象 (14)toBeLessthan数值比较,小于 (15)toBeGreaterThan数值比较,大于 (16)toBeCloseto数值比较时定义精度,先四舍五入后再比较 (17)toThrow检验一个函数是否会抛出一个错误 三、jasmine的使用,案例来源https://www.cnblogs.com/leolovexx/p/6598875.HTML
<!DOCTYPE HTML><HTML><head>    <Meta http-equiv="content-type" content="text/HTML;charset=utf-8">    <Title>jasmine-Js单元测试框架</Title>    <link rel="stylesheet" href="jasmine/jasmine.CSS">    <script src="jasmine/jasmine.Js"></script>    <script src="jasmine/jasmine-HTML.Js"></script>    <script src="jasmine/boot.Js"></script></head><body><div>    <p>Js单元测试</p></div><script src="src.Js"></script><script src="test.Js"></script></body></HTML> 
四、Mocha的测试钩子 Mocha在describe块中提供了四个钩子: before(),after(),beforeEach(),afterEach(). 它们会在以下时间执行
describe(‘钩子说明‘,function() {  before(function() {    // 在本区块的所有测试用例之前执行  });  after(function() {    // 在本区块的所有测试用例之后执行  });  beforeEach(function() {    // 在本区块的每个测试用例之前执行  });  afterEach(function() {    // 在本区块的每个测试用例之后执行  });});
五:前端各单元测试框架的特点 1、Jest:基于 Jasmine 至今已经做了大量修改添加了很多特性 (1)开箱即用配置少,API简单 (2)支持断言和仿真 (3)支持快照测试 (4)在隔离环境下测试 (5)互动模式选择要测试的模块 (6)优雅的测试覆盖率报告,基于Istanbul (7)智能并行测试(参考) (8)较新,社区不十分成熟 (9)全局环境,比如 describe 不需要引入直接用 (10)较多用于 React 项目(但广泛支持各种项目) 2、Mocha (1)灵活(不包括断言和仿真,自己选对应工具) (2)流行的选择:chai,sinon (3)社区成熟用的人多,测试各种东西社区都有示例 (4)需要较多配置 (5)可以使用快照测试,但依然需要额外配置 3、Jasmine (1)开箱即用(支持断言和仿真) (2)全局环境 (3)比较‘老‘,坑基本都有人踩过了 4、AVA (1)异步,性能好 (2)简约,清晰 (3)快照测试和断言需要三方支持 5、Tape (1)体积最小,只提供最关键的东西 (2)对比其他框架,只提供最底层的 API

 

总结一下,Mocha 用的人最多,社区最成熟,灵活,可配置性强易拓展,Jest 开箱即用,里边啥都有提供全面的方案,Tape 最精简,提供最基础的东西最底层的API。 总结

以上是内存溢出为你收集整理的116前端单元测试全部内容,希望文章能够帮你解决116前端单元测试所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存