当前位置:永利皇宫官网 > 永利皇宫官网 > node测试基础

node测试基础

文章作者:永利皇宫官网 上传时间:2019-10-23

node测试基础。node测试基础。describe

describe('req.get',function(){
    describe('res.json',function(){
    });
});

被describe的回调所包裹的是贰个测量试验流程,使用describe能够很好地为测验表消痈的和界别等级次序

expect

var expect=require('chai').expect;
expect(foo).to.be.a('string');
expect(foo).to.equal('bar');
expect(foo).to.have.length(3);
expect(beverages).to.have.property('tea').with.length(3);

chai的行使十二分人性化,相符自然语言的规律,就非常少提了。

mocha

node测试基础。mocha的接受办法充足粗略,正是七个语句describe和it

chai

chai是三个预见工具,提供了一些比较受迎接的断言写法,这里根本介绍四个,should和expect。

should

var should=require('chai').should();
res.text.should.equal('hi,world');
req.path.should.include('users');
foo.should.have.length(3);

从下边的例子大家能够掌握should的写法了。

全部示例

最终给大家带来贰个本人要好写的全部示例。

var Zeta=require('../../'),
    assert=require('assert'),
    request=require('supertest'),
    demo=Zeta.module('demo',[]),
    should=require('chai').should();
demo.load();

describe('singleHandler',function(done){
    it('should get hello',function(){
        demo.handler('h1',function($scope){
            $scope.res.writeHead(200,{'Content-Type':'text/plain'});
            $scope.res.write('hello,world');
            $scope.res.end();
        });
        demo.get('/test','h1');
        request(demo.server())
        .get('/test')
        .expect(200)
        .end(function(err,res){
            if(err) throw err;
            res.text.should.equal('hello,world');
        });
    });
    it('should cover the previous one',function(done){
        demo.handler('h1',function($scope){
            $scope.res.writeHead(200,{'Content-Type':'text/plain'});
            $scope.res.write('hi,world');
            $scope.res.end();
        });
        request(demo.server(true)).
            get('/test').
            expect(200).
            end(function(err,res){
                if(err) done(err);
                res.text.should.equal('hi,world');
                done();
            });
    });
});

测量检验效果截图如下

图片 1

图表描述

it

describe('Array.index',function(){
    it('should return -1 when not found',function(){
        var tmp=[1,2,3];
        tmp.indexOf(4).should.equal(-1);
    });
});

it的首先个参数是个字符串,你能够把它充任是您测验样例的梦想结果,其实远非什么样实际意义,不会对测量检验样例的运转有怎样震慑。
上边的事例是对于联合的,要是有异步回调如何做吧?

describe('db.save',function(){
    it('should save the doc',function(done){
        doc.save(function(err,doc){
            if(err) done(err);
            if(!doc) done(err);
            done();
        });
    });
});

done是链的最后二个手续,调用done既不会往下进行,done(err)则印证退步。

supertest

对后端测量试验的时候难免会发起号召,supertest为大家提供了如此的功能。

var request=require('supertest');
request(app).
    get('/foo').
    expect(200).
    expect('Content-Type','application/json').
    end(function(err,res){
        if(err) throw err;
    });

要效仿异步ajax如何是好吧

//json上传
request(app).
    post('/foo').
    send({key:'value'}).
    expect(200);
//表单提交
request(app).
    post('/foo').
    type('form').
    send({key:value});
//上传文件
request(app).
    post('/foo').
    attach('field','filepath').
    ....

supertest重要行使的就是expect和end了,通过例子,我们也很明亮基本的用法了,对于详细的API能够参见官方网站。

前言

到了支出的早先时期,测验职业很多次是注重,但是测量试验自个儿又非常麻烦与复杂。对于使用js的仇人,对于自个儿接下去要讲的开始和结果纯属不会不熟悉,对,正是资深的抹茶!由于为自家的竹马之交开拓的后端框架Zeta做测量试验工作,所以开端接触那豆蔻年华类测量试验工具和测验流程,就把自家的上学经历分享给我们呢。

本文由永利皇宫官网发布于永利皇宫官网,转载请注明出处:node测试基础

关键词: