• 单元测试


    mocha提供TDD(测试驱动开发)和BDD(行为驱动开发)的风格
    TDD 关注所有功能是否被正确实现,每个功能都对应有测试用例,。偏向于说明书的风格表达方式。
    BDD 关注整体行为是否符合预期,适合自顶向下的设计方式。更接近自然语言的表达方式。
     
    npm install -g mocha
    npm install should
     
    mocha作为一个集成框架,可以使用should作为一个断言库,也可以使用nodejs自带的assert模块
    实例:
    var assert = require("assert");
    describe('Array', function(){
            describe('#indexOf()', function(){
                    it('should return -1 when the value is not present', function(){
                    assert.equal(-1, [1,2,3].indexOf(5));
                        assert.equal(-1, [1,2,3].indexOf(0));
                    })
            })});
    使用should
    require("should");
     
    var name = "zhaojian";
     
    describe("Name", function() {
        it("The name should be zhaojian", function() {
            name.should.eql("zhaojian");
        });
    });
    describe("InstanceOf", function() {
        it("Zhaojian should be an instance of Person", function() {
            zhaojian.should.be.an.instanceof(Person);
        });
     
        it("Zhaojian should be an instance of Object", function() {
            zhaojian.should.be.an.instanceof(Object);
        });
    });
    describe("Property", function() {
        it("Zhaojian should have property name", function() {
            zhaojian.should.have.property("name");
        });
    });
    对于嵌套要声明done,一个it中只能调用一次done
    fs = require('fs');
    describe('File', function(){
            describe('#readFile()', function(){
            it('should read test.ls without error', function(done){
                    fs.readFile('test.ls', function(err){
                                    if (err) throw err;
                                    done();
                            });
                    })
            })})
    Before  &  After
    describe('hooks', function() {
     
      before(function() {
        // runs before all tests in this block
      });
     
      after(function() {
        // runs after all tests in this block
      });
     
      beforeEach(function() {
        // runs before each test in this block
      });
     
      afterEach(function() {
        // runs after each test in this block
      });
     
      // test cases});
    延迟执行
    setTimeout(function() {
      // do some setup
      describe('my suite', function() {
        // ...
      });
      run();}, 5000);
     
  • 相关阅读:
    数据库——大事务
    数据库——性能理解
    java——通过GenericObjectPool获取到的资源,调用close()方法会close还是returnObject?
    gradle——入门
    MongoDB——morphia
    jvm——Java main方法的执行
    sql——limit
    阿里云Open API自动化脚本—ECS公网IP转化弹性公网IP
    阿里云共享带宽
    mysql5.x安装脚本
  • 原文地址:https://www.cnblogs.com/wanglao/p/11162681.html
Copyright © 2020-2023  润新知