var obj = { val: 10 } var fn = function () { obj.val += 3 } var noChangeFn = function () { return 'bar' + 'baz' } expect(fn).to.change(obj, 'val')
.increase(object, property)
- object:Object,对象
- property:String,属性名
断言目标方法会增加指定对象的属性
var obj = { val: 10 } var fn = function () { obj.val = 15 } expect(fn).to.increase(obj, val)
.decrease(object, property)
- object:Object,对象
- property:String,属性名
断言目标方法会减少指定对象的属性
var obj = { val: 10 } var fn = function () { obj.val = 5 } expect(fn).to.decrease(obj, val)
.extensible
断言目标对象是可扩展的(可以添加新的属性)
var nonExtensibleObject = Object.preventExtensions({}) var sealedObject = Object.seal({}) var frozenObject = Object.freeze({}) expect({}).to.be.extensible expect(nonExtensibleObject).to.not.be.extensible expect(sealObject).to.not.be.extensible expect(frozenObject).to.not.be.extensible
.sealed
断言目标对象是封闭的(无法添加新的属性并且存在的属性不能被删除但可以被修改)
var sealedObject= Object.seal({}) var frozenObject = Object.freeze({}) expect(sealedObject).to.be.sealed expect(frozenObject).to.be.sealed expect({}).to.not.be.sealed
.frozen
断言目标对象是冻结的(无法添加新的属性并且存在的属性不能被删除和修改)
var frozenObject = Object.freeze({}) expect(frozenObject).to.be.frozen expect({}).to.not.be.frozen
TDD
除了一些语法糖以外,Chai提供的assert风格的断言和node.js包含的assert模块非常相似。assert风格是三种断言风格中唯一不支持链式调用的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持黑区网络。