AngularJS自动化测试之karma+jasmine单元测试

2023-11-01

单元测试专门用于测试小型、独立的代码单元,单个函数,或者较小的功能,其主要难点在于划分小的功能块。

本位主要介绍AngularJS的单元测试的环境搭建。

 

Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。

Jasmine (茉莉)是一款 JavaScript BDD(行为驱动开发)测试框架,它不依赖于其他任何 JavaScript 组件。它有干净清晰的语法,让您可以很简单的写出测试代码。对基于 JavaScript 的开发来说,它是一款不错的测试框架选择。

环境搭建 

  1. 安装NodeJSJavaScript运行环境)(https://nodejs.org/en/
  2. 安装npmJavaScript包管理工具)(npm is installed with Node.js)
  3. 安装karmaJavaScript测试运行器)(npm   install  -g   karma)
  4. 安装jasmine(测试框架)(npm install  -g  jasmine-core
  5. 代码覆盖率统计插件(npm  install   -g  karma-coverage)

 

  • What is npm?

      npm makes it easy for JavaScript developers to share and reuse code, and makes iteasy to update the code that you're sharing, so you can build amazing things.

 

  • 代码覆盖率

 

    如何衡量测试脚本的质量呢?其中一个参考指标就是代码覆盖率(coverage)。

    什么是代码覆盖率?简而言之就是测试中运行到的代码占所有代码的比率。

 

项目配置

You can use( npm init )in the root of your package in order to get you started with a pretty basic package.json file.

 

项目文件结构

 

index.js

 

function  isNum(num) { 
	if (typeof num === 'number') {
	 	return true;
 	}
 	else {
	 return false;
 	}
 }


test.spec.js

 

describe('index.js: ', function() {
  it('isNum() should work fine.', function() {
    expect(isNum(1)).toBe(true)
    expect(isNum('1')).toBe(false)
  })
})

 

创建测试配置文件

karma  init  test/karma.conf.js

 

 

karma-coverage配置

修改配置文件karma.conf.js

 

 

启动单元测试

karma  start  test/karma.conf.js

 

注:karma.conf.jsautowatch设置为true时每次代码有变化时,自动运行 单元测试。

 

 

 

代码覆盖率(test/coverage/index.html)

 

插件:karma-jasmine-html-reporter

 

Reporter that dynamically shows tests results at debug.html page.

 

 

安装:

npm install karma-jasmine-html-reporter -g

修改karma.conf.js相应部分:

reporters:['progress', 'coverage', 'kjhtml']

启动测试:

karma  start  test/karma.conf.js

启动测试:karma  start   test/karma.conf.js

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS自动化测试之karma+jasmine单元测试 的相关文章

随机推荐

  • [技术讨论]PCB晶振layout需要注意事项

    晶振是单片机的心脏 所以晶振的重要性不言而喻 那么在PCB layout的时候 我们对晶振要有哪些注意事项呢 一 晶振的两个重要参数 晶振的频偏是指晶振输出的频率与其额定频率之间的差异 通常以ppm 百万分之一 为单位表示 频偏可能会受到晶
  • 怎么在云服务器上跑深度学习项目,深度学习训练

    MMCV 是一个面向计算机视觉的基础库 它支持了很多开源项目 注意事项 RTX 3000 系列显卡在 PyTorch 1 8 1 For CUDA 11 1 上 MMCV 目前工作不正常 使用此系列显卡时 请选择 PyTorch 1 7 1
  • C语言循环数组解决数学问题,通过C语言数组解决一些简单的递推数学问题

    通过C语言数组解决一些简单的递推数学问题 c语言是一种十分适合解决数学问题的编程语言 其中数组对于解决递推问题有十分优秀的作用 数组 数组就是变量的集合 是一种指定义变量的方法 一维数组 定义 类型 数组 数量 里的整数表示变量的数量 in
  • 【猿人学WEB题目专解】猿人学第2题

    据说 看我文章时 关注 点赞 收藏 的 帅哥美女们 心情都会不自觉的好起来 前言 作者简介 大家好我是 user from future 意思是 来自未来的用户 寓意着未来的自己一定很棒 个人主页 点我直达 在这里肯定能找到你想要的 专栏介
  • 【计算机视觉

    文章目录 一 ZeroWaste 二 Aircraft Context Dataset 三 BdSLImset Bangladeshi Sign Language Image Dataset 四 COCO Tasks 五 Deep PCB
  • fragment中嵌套viewpager,vierpager中有多个fragment,不显示 .

    http blog csdn net shaoyizhe2006 article details 27352349
  • PID 算法 (温控为例子)

    一 位式控制 位式控制算法输出信号一般只有高低两种状态 算法输出信号out的依据 PV lt SP gt H PV gt SP gt L 对于系统惯性 会导致系统震荡 PID算法 基于位式控制 做了很多优化 SP Set Point PV
  • 《数学建模实战攻略:常用数学理论与方法Matlab》

    一 简介 在数学建模过程中 选择合适的数学理论和方法对于解决问题至关重要 在本篇博客中 我们将介绍数学建模中经常用到的一些数学理论和方法 包括线性代数 微积分 概率论与统计以及优化方法 此外 我们将通过一个简单的示例来展示如何使用MATLA
  • 【纯干货】神奇的Ctrl键,Linux运维常用快捷键!

    Ctrl 可以带来什么意想不到的效果呢 是否所有的Linux运维常用快捷键你都已经掌握了呢 小编发现不少小伙伴们在学习以及Linux运维工作中 操作命令行还在用很土很没效率的方法 例如频繁用方向键移动命令行光标 频繁敲重复的命令等 为了解决
  • HA主备路由模式的原理

    HA是High Availability缩写 即高可用性 可防止网络中由于单个防火墙的设备故障或网络故障导致网络中断 保证网络服务的连续性和安全强度 目前 ha功能已经是防火墙内一个重要组成部分 主备模式 Active standby 在一
  • cerr与cout的区别

    概念 std cerr是ISO C 标准错误输出流 对应于ISO C标准库的stderr 与std cout不同 ISO C 要求当cerr被初始化后 cerr flags unitbuf非零 保证流在每次输出操作后被刷新 且cerr ti
  • Sublime Text的安装与配置记录

    Sublime Text作为一款优质的Code编辑器 已更新至第4个版本 本文记录关于Sublime Text 4 版本4126 的安装 汉化 以及常用配置方法 安装 访问官网下载安装包 https www sublimetext com
  • 如何注册快手引流号?快手引流账号应该注意什么?

    快手短视频的影响力越来越大 用户也是越来越多 一个流量聚焦的平台 通过用户分享自制的短视zhi频形式获取了大量粉丝 而且不屏蔽任何引流信息 可以说是非常开放 自由 快手在短时间内就拥有大量的用户数不得不说它的推广很到位 那么快手账号应该如何
  • 【题解】游戏 (2019.08.01纪中【NOIP提高组】模拟 B 组T1) DP 博弈论

    题目来源 中山纪念中学 题目描述 Alice和Bob在玩一个游戏 游戏是在一个N N的矩阵上进行的 每个格子上都有 一个正整数 当轮到Alice Bob时 他 她可以选择最后一列或最后一行 并将其删除 但 必须保证选择的这一行或这一列所有数
  • 使用Docker部署Node.js中的Vue项目

    1 准备工作 使用服务器 阿里云 服务器系统 CentOS 7 项目配置 准备好一个项目 该项目下有以下文件 对 package json 文件进行修改 设置项目启动的端口号和使用的ip 注 在修改package json文件中的host为
  • 图解 Java 垃圾回收机制,写得非常好!

    什么是自动垃圾回收 自动垃圾回收是一种在堆内存中找出哪些对象在被使用 还有哪些对象没被使用 并且将后者删掉的机制 所谓使用中的对象 已引用对象 指的是程序中有指针指向的对象 而未使用中的对象 未引用对象 则没有被任何指针给指向 因此占用的内
  • UnsatisfiedDependencyException: Error creating bean with name XXXController'

    在springboot中遇到了UnsatisfiedDependencyException Error creating bean with name XXXController 的问题 代码如下 controller public cla
  • 编辑器组件monaco

    1 配置代码编辑器子组件monaco js
  • 计算机网络篇-运输层

    运输层 运输层向上层应用层提供通信服务 运输层是端到端的通信 也就是说通信的两端是两个主机中的应用进程 运输层还有一个很重要的功能 分用 复用 运输层的两个主要协议 用户数据报协议UDP 不需要建立连接 传输控制协议TCP 提供面向连接的服
  • AngularJS自动化测试之karma+jasmine单元测试

    单元测试专门用于测试小型 独立的代码单元 单个函数 或者较小的功能 其主要难点在于划分小的功能块 本位主要介绍AngularJS的单元测试的环境搭建 Karma是一个基于Node js的JavaScript测试执行过程管理工具 Test R