国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解Chai.js斷言庫API中文文檔

2024-05-06 15:22:15
字體:
來源:轉載
供稿:網友

Chai.js斷言庫API中文文檔

基于chai.js官方API文檔翻譯。僅列出BDD風格的expect/should API。TDD風格的Assert API由于不打算使用,暫時不放,后續可能會更新。

BDD

expect和should是BDD風格的,二者使用相同的鏈式語言來組織斷言,但不同在于他們初始化斷言的方式:expect使用構造函數來創建斷言對象實例,而should通過為Object.prototype新增方法來實現斷言(所以should不支持IE);expect直接指向chai.expect,而should則是chai.should()。

個人比較建議使用expect,should不僅不兼容IE,在某些情況下還需要改變斷言方式來填坑。詳細的比較可以看看官網Assertion Styles,說的很清楚。

var chai = require('chai') , expect = chai.expect , should = chai.should()

語言鏈

下面的接口是單純作為語言鏈提供以期提高斷言的可讀性。除非被插件改寫否則它們一般不提供測試功能。

    to be been is that which and has have with at of same

.not

對之后的斷言取反

expect(foo).to.not.equal('bar')expect(goodFn).to.not.throw(Error)expect({ foo: 'baz'}).to.have.property('foo') .and.not.equal('bar')

.deep

設置deep標記,然后使用equal和property斷言。該標記可以讓其后的斷言不是比較對象本身,而是遞歸比較對象的鍵值對

expect(foo).to.deep.equal({ bar: 'baz'})expect({ foo: { bar: { baz: 'quux'}}}) .to.have.deep.property('foo.bar.baz', 'quux')

deep.property中的特殊符號可以使用雙反斜杠進行轉義(第一個反斜杠是在字符串參數中對第二個反斜杠進行轉義,第二個反斜杠用于在property中進行轉義)

var deepCss = { '.link': { '[target]': 42 } }expect(deepCss).to.have.deep.property('//.link.//[target//]', 42)

.any

在keys斷言之前使用any標記(與all相反)

expect(foo).to.have.any.keys('bar', 'baz')

.all

在keys斷言之前使用all標記(與any相反)

expect(foo).to.have.all.keys('bar', 'baz')

.a(type) / .an(type)

type:String,被測試的值的類型

a和an斷言即可作為語言鏈又可作為斷言使用

// 類型斷言expect('test').to.be.a('string');expect({ foo: 'bar' }).to.be.an('object');expect(null).to.be.a('null');expect(undefined).to.be.an('undefined');expect(new Error).to.be.an('error');expect(new Promise).to.be.a('promise');expect(new Float32Array()).to.be.a('float32array');expect(Symbol()).to.be.a('symbol');// es6 overridesexpect({[Symbol.toStringTag]:()=>'foo'}).to.be.a('foo');// language chainexpect(foo).to.be.an.instanceof(Foo);

.include(value) / contains(value)

value:Object | String | Number

include()和contains()即可作為屬性類斷言前綴語言鏈又可作為作為判斷數組、字符串是否包含某值的斷言使用。當作為語言鏈使用時,常用于key()斷言之前

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 贡嘎县| 迁西县| 苏尼特左旗| 杭锦后旗| 万安县| 五原县| 沧州市| 吉木萨尔县| 桂东县| 噶尔县| 滨海县| 原阳县| 轮台县| 黄平县| 康保县| 万荣县| 凤阳县| 韶山市| 丰镇市| 栾城县| 巴里| 周至县| 罗城| 芒康县| 长顺县| 朝阳区| 绥棱县| 东丽区| 米脂县| 富源县| 武隆县| 海门市| 襄汾县| 蓬安县| 马关县| 巩义市| 方山县| 鄂温| 方正县| 红安县| 洪江市|