我知道它在构建插件时使用,但它实际上是如何工作的?
据我所知,它是作出断言的对象。是这样吗?
是的,它是您做出断言的对象,即“实际”值。但是你只需要介意你是否正在构建一个插件。从文档:
对象标志是Chai的保留标志中最重要的就是对象标志。这是一个断言的主题。
var myAssert = new Assertion('Arthur Dent'); var obj = flag(myAssert, 'object'); // obj === 'Arthur Dent';
实际上,如果可以像这样创建自己的断言方法:
chai.Assertion.addMethod("myCustomEqual", function(expected) {
console.log(this._obj); // this._obj = actual value
console.log(expected); // expected value
return this.assert(this._obj === expected, `expected ${this._obj} to equal ${expected}`);
});
要运行测试:
it("should pass", function() {
const j = 10;
j.should.be.myCustomEqual(10);
});