nodejs 单元测试】的更多相关文章

之前项目开发因为改进度,基本都是粗放式开发.为了提高代码质量,单元测试是必不可少的. 针对restful api ,用supertest 测试框架.针对nodejs,引入mocha 和should 可以方便编写单元测试. 首先谈谈supertest,它封装了mocha和expect 模块.用法也比较简洁,例子: var request = require('supertest'); var express = require('express'); let should=require('sho…
前言: 之前一直听说过单元测试,但是具体怎么做,也没有深入研究,感觉测试是一件很麻烦的事,花费时间.可能是自己太懒了,一看到测试那么多陌生的东西就不想弄了. 然后一拖再拖,直到最近,换了一家公司,然后求知欲望又燃起来了.所以想吧之前一直不想掌握的技术给掌握了. 目录: 测试框架 断言库 supertest 1.测试框架 nodejs的测试框架用的最多的是mocha.mocha诞生于2011年,是现在最流行的测试框架之一,再浏览器和node环境中都可以使用.它支持多种nodejs的断言库,同时支持…
前言 最近在写一课程的Project,用Node写了一个实时聊天小应用,其中就用到了单元测试.在写Node单元测试的时候,一方面感受到了单元测试的重要性,另一方面感受到了Node单元测试的不够成熟,尚未有成熟的理论体系,所以想写篇博客探讨一下Node里面单元测试的方法.示例代码部署在Github上面,地址是:https://github.com/blogdemos/node-test-demo,欢迎fork~ 单元测试简介 根据维基百科的定义: 在计算机编程中,单元测试(又称为模块测试, Uni…
关于jasmine就不多说了,关于语法请参加官方文档.http://pivotal.github.io/jasmine/ 关于NodeJS的单元测试框架有多种,如果要在NodeJS中使用jasmine的话 ,需要安装jasmine-node. 采用npm安装即可.github地址 https://github.com/mhevery/jasmine-node 全局安装 jasmine-node .  npm install jasmine-node -g  安装完之后环境基本也算是搭建好了.下面…
单元测试是最小化的测试方式,也是TDD的做法. TDD概念如下图: 通过测试反馈推进开发,ruby是推崇这种编程方式的. nodejs有如下常用单元测试模块 1.mocha Mocha是一个基于node.js和浏览器的集合各种特性的Javascript测试框架,并且可以让异步测试也变的简单和有趣.Mocha的测试是连续的,在正确的测试条件中遇到未捕获的异常时,会给出灵活且准确的报告. 安装: npm install -g mocha const assert = require("assert&…
安装必要的包 nodejs的单元测试最常用的是使用mocha包.首先确保你本地安装nodejs,之后安装mocha包. npm install mocha -g 然后还需要安装相关的断言工具,Node.js中常用的断言库有: assert: TDD风格 should: BDD风格 expect: BDD风格 chai: BDD/TDD风格 使用npm install安装这些断言库其中之一即可. PHPStorm配置nodejs单元测试环境 在PHPStorm中选择菜单:Run -> Edit C…
简介 经过前两篇文章的介绍,相信读者对Mocha应该有一定的认知了,本文重点讲述如何在Chrome下Debug Mocha Test, 方便你在测试fail的时候troubleshooting. 关键词: Mocha, Mocha Debug with Chrome, Debug Mocha test, node-inspector, Nodejs单元测试Debug 开始 1) Install node-inspector npm install -g node-inspector 我安装的版本…
目前大部分Web服务器,如Apache,都使用多线程的方式响应多用户请求,即一个线程服务一个用户请求.这种模式其中一个好处是,当某个请求的线程上抛出的异常没被捕获,只会影响当前这个线程,不会影响其他请求. 由于Node执行在单线程上,一旦线程上抛的异常没有被捕获,就会引起整个进程的崩溃.所以对Node服务的异常处理.保证进程的稳定性非常重要. 再好的程序员也不敢保证自己的代码不出现异常,除了尽可能捕获可能出现的异常,我们还需要通过一些规范减少异常发生,通过单元测试辅助我们验证代码,通过一些工具保…
Introduction Grunt 是一个基于任务的JavaScript 世界的构建工具 Mocha 是具有丰富特性的 JavaScript 测试框架,可以运行在 Node.js 和浏览器中,使得异步测试更简单更有趣.Mocha 可以持续运行测试,支持灵活又准确的报告,当映射到未捕获异常时转到正确的测试示例. Prerequisite nodejs项目文件目录结构如下 ├── config ├── controllers ├── models ├── lib ├── node_modules…
最近一直在做nodejs,而关于js的单元测试覆盖率网上资料比较少而且吧比较零散,我从网上找来一些资料整理一下分析给大家,希望大家可以少走弯路. 首先我是从windows环境下测试的,用到的工具有 mocha,一个js的测试工具,如果你是已经安装了npm包管理工具,那么直接 npm install mocha -g就可以了,你可以在任何路径使用mocha命令进行测试 should是一个还不错断言库(断言库就是一些使用习惯,实质没有不同),具体用法就直接上代码了. 同样npm install sh…
     sailsjs框架用了一段时间了,感觉如果功能复杂了,非常难以处理,想用一下单元测试,看是否能解决问题.     sailsjs的官方文档使用的是mocha,我搜索了一些资料,主要参考了朴灵的<深入浅出nodejs>的单元测试一章.sailsjs的官方文档以及github上的一个例子https://github.com/bredikhin/sailsjs-mocha-testing-barrels-fixtures-example.     1)系统环境如下           Wi…
在团队合作中,你写好了一个函数,供队友使用,跑去跟你的队友说,你传个A值进去,他就会返回B结果了.过了一会,你队友跑过来说,我传个A值却返回C结果,怎么回事?你丫的有没有测试过啊? 大家一起写个项目,难免会有我要写的函数里面依赖别人的函数,但是这个函数到底值不值得信赖?单元测试是衡量代码质量的一重要标准,纵观Github的受欢迎项目,都是有test文件夹,并且buliding-pass的.如果你也为社区贡献过module,想更多人使用的话,加上单元测试吧,让你的module值得别人信赖. 要在N…
一. chai chai 自身是依赖nodejs的 assert,让检测更加语义化. chai 采用两种模式,TDD和BDD, TDD是类似自然语言方式 BDD是结构主义 chai文旦地址 二.mocha chai测试解构成功不返回提示,失败了报错误,这样子显然不太友好.mocha让测试的结果更加符合语义. mocha文档地址 运行主要通过在package.json中scripts配置npm命令,一般用npm自身test命令,如下: "test": "mocha ./test…
Jest——Painless JavaScript UnitTesting 特点 适应性强 默认使用Jasmine断言 模块化的 可扩展的 可配置的 沙箱式且快速 虚拟化JS环境,模拟浏览器 并行运行工作线程 默认的模拟框架 默认自动模拟所有模块,便于测试当前代码 集成Babel 必要性 支持ES6标准语法 支持React特定语法 安装组件 npm install --save-dev babel-jest babel-polyfill 配置babel { "presets": [&q…
今天早上继续研究Mocha,忽然发现一个问题,我的大部分程序都是需要登录验证的,所以需要预先登录之后才能进行下一步测试,就开始在网上找答案,发现没有这种资料,很疑惑,最后发现其实是自己太笨了,因为这个问题在Node中太简单了,解决方案如下 修改bootstrap.test.js,如下 var Sails = require('sails'), sails; var request = require('supertest'); var port = 1447; //测试启动端口 agent =…
什么是Node.js? 很多初学者并没有真正地理解Node.js到底是什么.nodejs.org网站中的描述也没有多大帮助. 首先要清楚Node不是一个Web服务器,这十分重要.它本身并不能做任何事情.它无法像Apache那样工作.如果你希望它成为一个HTTP服务器,你必须借助它内置库自己编写.Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime. 安装Node.js Node.js的安装十分容易.只需在这里下载满足你需要的安装程序即可. 已安装好N…
关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开源项目,也都是有测试代码的,看来业界大牛们都比较注重单元测试这块. 就我自己的理解而言: 涉及到大量业务逻辑的代码,可能我没有精力去给每个函数都写上单元测试的代码,功能细节的测试应该交由测试的同事去完成,但是对会直接影响项目正常运行的重要的数据接口,还是可以看情况写上几个单元测试用例的,每一次修改之…
process对象用于处理与当前进程相关的事情,它是一个全局对象,可以在任何地方直接访问到它而无需引入额外模块. 它是 EventEmitter 的一个实例. 本章的示例可以从我的Github上下载到. 事件'exit' 当进程将要退出时触发.这是一个在固定时间检查模块状态(如单元测试)的好时机.需要注意的是 'exit' 的回调结束后,主事件循环将不再运行,所以计时器也会失效: process.on('exit', function() { // 设置一个延迟执行 setTimeout(fun…
Karma是Google用于angularjs框架单元测试的js引擎(javascript test runner ), angular1 和angular2项目源码的单元测试都是基于karma和jasmine.  karma 特性如下: 1. 在真实设备和浏览器中运行测试.无论在手机,平板,电脑或PhantomJS 都可以运行你的测试代码. 2. 远程控制. 从IDE或命令行控制整个测试流程,当你改变并保存了测试文件,karma就会运行全部测试. 3. 不依赖于特定测试框架. 你可以搭配Jas…
关于本文:介绍通过karma与jsmine框架对angular开发的应用程序进行单元与E2E测试. angular单元测试与集成测试实践 先决条件 创建项目 webstorm中创建空白web项目 创建html.js文件夹 安装框架 安装前端框架 1) 安装bower包管理器 2) 初始化bower.json文件 3) 安装angular等框架 安装服务器端框架 1)安装http-server模块 2)安装其他模块 启动服务器 开始单元测试 编写功能代码 编写测试代码 单元测试配置 运行单元测试…
关注单元测试有一段时间了,也做了些尝试然后就停了下来,寻找框架.方法.各种尝试 看得多,尝试的少, 关于框架分为两类,1是自动化测试工具类,1是js单元测试框架 关于自动化测试工具我尝试了http://totorojs.org/ 阿里巴巴的测试工具,为什么尝试这个呢?看了些资料,安装部署都挺简单的,最重要的是基于NODEjs开发的,通过node安装很方便的 其他工具,查阅资料,仅仅是安装和部署都挺费劲的 totorojs 支持同时测试多个浏览器,默认支持js测试框架jasmine和mocha j…
一. CommonJS 规范 1.1nodejs 与 commonjs 之间的关系: 1)nodejs是一种服务器语言. a)开启服务的能力 b)文件读写的能力 服务器:就是一台安装了服务软件 2)commonjs是nodejs的规范. 1.2commonjs规范的意义: 由于nodejs是用javascript来写的,javascript遵守ECMAScript规范,而ECMAScript这个规范它(如果作为一门后台语言的规范)是不完整的,因为它内容仅仅只是规范了javascript的:词法.…
目录 1. 简介 2. 前提条件 3. Mocha入门 4. Mocha实战 被测代码 Example 1 Example 2 Example 3 5. Troubleshooting 6. 参考文档 简介 Mocha 是具有丰富特性的 JavaScript 测试框架,可以运行在 Node.js 和浏览器中,使得异步测试更简单更有趣.Mocha 可以持续运行测试,支持灵活又准确的报告,当映射到未捕获异常时转到正确的测试示例. Chai 是一个针对 Node.js 和浏览器的行为驱动测试和测试驱动…
这篇文章主要介绍了angularJS中的单元测试实例,本文主要介绍利用Karma和Jasmine来进行ng模块的单元测试,并用Istanbul  来生成代码覆盖率测试报告,需要的朋友们可以参考下,以下可全都是干货哦! 当ng项目越来越大的时候,单元测试就要提上日程了,有的时候团队是以测试先行,有的是先实现功能,后面再测试功能模块,这个各有利弊,今天主要说说利用karma和jasmine来进行ng模块的单元测试. 一.Karma+Jasmine+ Istanbul Karma是Testacular…
一.Nodejs介绍 简单的说 Node.js 就是运行在服务端的 JavaScript的代码解析器. 首先要清楚Node不是一个Web服务器,这十分重要.它本身并不能做任何事情.它无法像Apache那样工作.如果你希望它成为一个HTTP服务器,你必须借助它内置库自己编写.Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime. Node.js把 JavaScript 的使用从浏览器端扩展到了服务器端,使得前端开发人员可以用熟悉的语言编写服务器端代码.…
nodejs概念: 让javascript运行在服务端的开发平台.不是一种语言,不是框架,不是库.特点:单线程异步.事件驱动. PHP.JAVA既是语言也是平台. 创始人:Ryan nodejs cmd 命令: node -v //查看nodejs版本 node -e "console.log('ok')" //eval解析javascript语言 node 回车 //进入编译模式 npm list //查看目录下安装包 npm install -g 包名 //安装全局包 nodejs…
第一章:压缩js(nodejs,uglify) 第一步:安装nodejs环境 直接下载http://www.nodejs.org/download/ 下载完成后直接下一步下一步即可,完了我们就具有nodeJS环境了 以下几步都有点忘了,下次试试吧: 第二步:新建一个package.json文件和Gruntfile.js文件 package.json文件内容: { "name": "qx_tjk_js", "version": "0.0.…
Aug 17, 2013 Tags: gruntJavascriptnodejs Comments: 9 Comments grunt让Nodejs规范起来 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏览器就基于V8,同时打开20-30个网页都很流畅.Nodejs标准的web开发框架Express,可以帮助我们迅速建立web站点,比起PHP的…
今年转向做前端开发,主要是做angularjs开发,期间接触了nodejs平台,从此一发不可收拾. npm丰富的插件库,express 开发框架, grunt, gulp构建工具,karma测试管理工具,jasmine单元测试框架,ng-scenario e2e测试框架(以前不知道javascript还能做端对端测试的),coffeescript, less, sass等前端技术,没想到前端是可以这样玩的. 根据这段时间的学习,我将各种相关的技术做一个前端方案的整合,主题为博客网站,命名为Sin…
Karma 是 Goolge 开源的一个 Test runner, 可以配合 Grunt 使用. 1. 相关插件介绍 1.1 Karma 的官网 http://karma-runner.github.io/ 官网中的文档其实分多钟版本,不同版本的 karma 使用也有所不同,注意页面右上角的版本信息. 1.2 配合 Grunt 的插件 grunt-karma https://github.com/karma-runner/grunt-karma 1.3 karma 用来启动 chrome 的 k…