博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NodeJs学习笔记(五)---单元测试补充
阅读量:6832 次
发布时间:2019-06-26

本文共 1622 字,大约阅读时间需要 5 分钟。

    今天早上继续研究Mocha,忽然发现一个问题,我的大部分程序都是需要登录验证的,所以需要预先登录之后才能进行下一步测试,就开始在网上找答案,发现没有这种资料,很疑惑,最后发现其实是自己太笨了,因为这个问题在Node中太简单了,解决方案如下

     修改bootstrap.test.js,如下

var Sails = require('sails'),sails;var request = require('supertest');var port = 1447; //测试启动端口agent = request.agent('http://localhost:'+port); //服务器连接,全局变量before(function (done) {	Sails.lift({		log : {			level : 'error'		},		port:port	}, function (err, server) {		sails = server;		if (err) {			return done(err);		} else {//登录			agent.get('/user/login?login_code=18875282207&user_password=111111')			.end(function (err, res) {				if (err)					return done(err);				done(err, sails);			});		}	});});after(function (done) {	var done_called = false;	Sails.lower(function () {		if (!done_called) {			done_called = true;			setTimeout(function () {				sails.log.debug("inside app.lower, callback not called yet. calling.");				done();			}, 1000);		} else {			sails.log.debug("inside app.lower, callback already called.");		}	});});

  增加了全局变量agent = request.agent('http://localhost:'+port),这个变量可以在以后发起请求,同时启动sailsjs之后,直接登录,以后测试controllers时,就只需要调用agent.get()或者agent.post()就可以了,前面的controller测试UserController.test.js修改如下:

      

var should = require('should');describe('UsersController', function () {	describe('#session()', function () {		it('should get true', function (done) {			agent.get('/user/test')			.end(function (err, results) {				should(results.res.body.authenticated).be.exactly(true);				done();			});		});	});});

  其中/user/test的返回值格式为{authenticated: true},如果已经登录则返回true,否则返回false。 

    运行npm test,结果如下

1 passing (8s)

     很简单就解决了,记录下来备忘吧。

转载于:https://www.cnblogs.com/stone-fly/p/4535792.html

你可能感兴趣的文章
从C# 3.0说以人为本(一)—— 编译器的支持
查看>>
html5 <script>
查看>>
nginx中在超全局变量$_SERVER中增加变量
查看>>
JTable常见用法细则+设置某列可编辑+滚动表格
查看>>
浅谈websocket和c# socket(新手篇)
查看>>
Private strand flush not complete
查看>>
prtg
查看>>
Date5
查看>>
MS .NET企业级应用架构设计笔记1(关于业务层)
查看>>
【Codeforces Round #406 (Div. 2)】题解
查看>>
php基本语法
查看>>
页面加载顺序的问题
查看>>
防止人为误操作MySQL数据库技巧一例
查看>>
送给自己的春节回家最佳高薪充电技术
查看>>
用什么样的个人笔记类软件?OneNote、EverNote(印象笔记)、为知笔记、麦库记事、有道云笔记……...
查看>>
运维监控利器Nagios:概念、结构和功能
查看>>
《Python从小白到大牛》第7章 运算符
查看>>
C#中程序的退出
查看>>
MDT 2013 Update 1 Preview 部署 Windows 10之批量部署实战
查看>>
数据建模在性能测试中的理解
查看>>