文章图例:

待解决问题
重点问题

学习资料:

测试框架 Mocha 实例教程-阮一峰Chai.js断言库API中文文档
官网:Chai


“断言”:

就是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。所有的测试用例(it块)都应该含有一句或多句的断言。它是编写测试用例的关键。

断言风格:

**

expect:

expect使用链式语言来组织断言。初始化断言使用构造函数来创建断言对象实例,优点是很接近自然语言

  1. var chai = require('chai') ,
  2. expect = chai.expect // expect直接指向chai.expect

断言方法:

比如equal、a/an、ok、match等。与expect方法之间使用 to 或 to.be 连接

  1. // 相等或不相等
  2. expect(4 + 5).to.be.equal(9);
  3. expect(4 + 5).to.be.not.equal(10);
  4. expect(foo).to.be.deep.equal({ bar: 'baz' });
  5. // 布尔值为true
  6. expect('everthing').to.be.ok;
  7. expect(false).to.not.be.ok;
  8. // typeof
  9. expect('test').to.be.a('string');
  10. expect({ foo: 'bar' }).to.be.an('object');
  11. expect(foo).to.be.an.instanceof(Foo);
  12. // include
  13. expect([1,2,3]).to.include(2);
  14. expect('foobar').to.contain('foo');
  15. expect({ foo: 'bar', hello: 'universe' }).to.include.keys('foo');
  16. // empty
  17. expect([]).to.be.empty;
  18. expect('').to.be.empty;
  19. expect({}).to.be.empty;
  20. // match
  21. expect('foobar').to.match(/^foo/);

语言链:

未解决的、想要实现的效果:

  1. describe('promise - promise测试', function() {
  2. it('promise请求测试', function() {
  3. return new Promise((res, rej) => {
  4. rej(new Error('出错了'))
  5. }).then((data) => {
  6. expect(data).to.be.a('string')
  7. }).catch((err) => {
  8. expect(err).to.not.throw(Error) // 期待能判断err是一个错误对象
  9. })
  10. });
  11. });

chai断言拥有多个属性

  1. expect(vm.$props).to.have.property('editorMenus,editorColors')