Chai 的 api 速查表:用最短的时间掌握所有断言方法

Chai 是一个流行的 JavaScript 测试框架,它提供了一系列的 assert 函数来帮助我们编写测试代码并进行断言。在使用 Chai 进行测试时,熟悉 Chai 的 API 是非常必要的,因为它能够帮助我们更快地编写测试代码,更快地定位错误。

本文将为大家提供 Chai 的 API 速查表,帮助大家在最短的时间内了解所有的断言方法,从而更好地掌握 Chai 的使用方法。

Chai 的 expect 断言

expect 函数是 Chai 中最常用的断言方法之一。它的语法如下:

expect(actual).to.[not].<chainable-assertion>(expected);

其中,actual 表示我们要进行断言的实际值,expected 表示我们期望的值。同时,to 和 not 是语言修饰符, 是 Chai 中的可链式断言方法。

以下是一些常用的可链式断言方法:

1. equal / equals

equal / equals 方法用于判断两个实际值是否相等。其中,equal 方法使用的是 JavaScript 严格相等操作符(===),equals 方法使用的是深度相等操作。

expect(1 + 1).to.equal(2);
expect([1, 2, 3]).to.deep.equal([1, 2, 3]);

2. be / been

be / been 方法用于比较实际值和期望值的类型以及引用。

expect('hello').to.be.a('string');
expect(myObj).to.have.been.calledOnce; // 用于 Sinon.js 的 spy 对象

3. ok / true

ok / true 方法用于确定实际值为真。

expect(true).to.be.ok;

4. not

not 方法可以用于否定前面的断言,以便进行逆向断言。

expect(foo).to.not.equal('Eve');

5. include / includes / contain

include / includes / contain 用于检查是否包含某个元素。

expect([1, 2, 3]).to.include(2); // .includes 和 .contain 同理
expect('hello world').to.include('world');

6. empty

empty 方法用于确定数组或对象是否为空。

expect([]).to.be.empty;
expect({}).to.be.empty;

Chai 的 assert 断言

assert 函数是最基础的 Chai 断言方法,它的语法如下:

assert.<method>(actual, expected, [message]);

其中, 表示不同的方法名称。以下是一些常用的断言方法:

1. equal / notEqual

equal / notEqual 用于比较两个实际值是否相等。

assert.equal(1 + 1, 2);
assert.notEqual(1 + 1, 3);

2. strictEqual / notStrictEqual

strictEqual / notStrictEqual 用于比较两个实际值是否严格相等。

assert.strictEqual(1 + 1, 2);
assert.notStrictEqual(1 + 1, '2');

3. deepEqual / notDeepEqual

deepEqual / notDeepEqual 用于比较两个对象是否深度相等。

assert.deepEqual({ foo: 'bar' }, { foo: 'bar' });
assert.notDeepEqual({ foo: 'bar' }, { foo: 'baz' });

4. ok

ok 用于确定实际值是否为真。

assert.ok(true);

Chai 的 should 断言

should 函数是 Chai 中最流行的断言方法之一。should 可以用于添加断言行为到 Object 原型中,从而为所有对象添加能够进行连续调用的 should 和 should.not 方法。以下是 should 的语法:

chai.should();

1. equal / equals

should 中的 equal / equals 方法用于判断两个实际值是否相等。

(1 + 1).should.equal(2);
[1, 2, 3].should.deep.equal([1, 2, 3]);

2. true

should 中的 true 方法用于断言一个对象或枚举值是否为真。

true.should.be.true;

3. instanceOf

should 中的 instanceof 方法用于确定对象是否为某个 class 的实例。

var myObj = new MyClass();
myObj.should.be.an.instanceOf(MyClass);

4. exist

should 中的 exist 方法用于确定对象是否存在。

myVar.should.exist;

总结

本文介绍了 Chai 中最常用的三个断言方法:expect、assert 和 should,并且列举了一些常用的断言方法和示例代码。通过本文的学习,读者应该能够更好地了解 Chai 的使用方法,从而更好地编写 JavaScript 测试代码。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6595225deb4cecbf2d95ba85


纠错反馈