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风格是三种断言风格中唯一不支持链式调用的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持黑区网络。
