断言是什么?一般情况下可以理解为一个表达式的结果是否为真,如果为假则抛出异常或者自定义这个失败测试用例。
常见的断言库
- assert:TDD风格,案例:assert("dennis" == username);
- should:BDD风格,案例:username.should.be("dennis");
- expect:BDD风格,基于should库,案例:expect(username).to.be("dennis");
- chai:同时支持assert、should、expect三种库;
const chai = require("chai")
const expect = chai.expect
const should = chai.should()
chai语言链
断言目标为指定类型
- to.be.ok:断言为真;
- to.not.be.ok:断言为假;
- to.be.true:断言为true;
- to.be.null
- to.be.undefined
- to.exist或者to.not.exist:断言存在;
- to.empty或者to.not.empty:断言空值;
expect(true).to.be.ok
expect(1).to.be.ok
断言目标值
- to.equal()/to.not.equal():断言等于具体值;
- to.eql():深度等于,相当于to.deep.equal();
- to.deep.equal():断言对象具体值;
- to.have.all.keys():断言所有;
- to.have.any.keys():断言任意值/键;
- to.include()或者to.include.keys():断言包含;
- to.contains()或者to.contains.keys():断言包含;
- to.above()或者to.have.length.above():断言大于;
- to.below():断言小于;
- to.least():断言不小于;
- to.most():断言不大于;
- to.within():断言范围大小;
- to.instanceof():断言类;
- to.have.property()或者to.have.deep.property()
- to.have.ownProperty()
expect(foo).to.equal("hello")
expect({foo: "test"}).to.have.deep.property("foo")
断言异常
- to.throw()
- to.not.throw()
网友评论