简介
chai-validate-response 是一个可以通过 chai 来校验 HTTP(s) 响应的 npm 包,可以帮助前端开发者在编写自动化测试时进行方便快捷的响应验证。本文将介绍 chai-validate-response 的使用方法,并且会讲解一些常见的验证场景。
安装
在使用之前,我们需要先安装 chai-validate-response,安装方法如下:
npm install chai-validate-response
使用
要在测试代码中使用 chai-validate-response,我们首先需要引入 chai、chai-http 和 chai-validate-response:
const chai = require('chai'); const chaiHttp = require('chai-http'); const chaiValidateResponse = require('chai-validate-response'); chai.use(chaiHttp); chai.use(chaiValidateResponse);
然后,在测试代码中我们就可以使用 .validate
来验证响应:
-- -------------------- ---- ------- ---------- ------ -- ------ ---- ---- --- ----- ------------ ----- -- -- - ----- -------- - ----- ------------------------------------ --------------------------------- ------------------------ ------------------------------------ ------------------------------------------- -------------------------------------------- ----------------------------------- ----- ------- ------ ------- --- ---
在上面的代码中,我们通过 chai 发送了 GET 请求,并且使用 .validate.bodyJson
方法来验证响应体应该是一个 JSON 对象,其中包含 name
和 price
两个属性。这里我们使用了 JavaScript 原生的 String 和 Number 来表示变量类型。
验证类型
chai-validate-response 支持的验证类型包括:
String
Number
Boolean
Array
Object
null
undefined
验证规则
chai-validate-response 支持的规则如下:
jsonSchema(schema: Object)
使用 JSON Schema 来验证响应体。
-- -------------------- ---- ------- ------------------------------------- ----- --------- --------- -------- --------- ----------- - ----- - ----- --------- -- ------ - ----- --------- -- -- ---
header(headers: Object)
验证响应头。
response.should.validate.header({ 'content-type': /json/, });
cookie(cookies: Object)
验证响应中的 cookie。
response.should.validate.cookie({ session_id: '1234', });
选项
chai-validate-response 可以接受一些选项来定制验证行为,选项如下:
strict
如果设置为 true
,则只有满足 schema 中定义的属性才会被认为是合法的响应体。
normalize
如果设置为 true
,则 response body 中的属性名和值会被转换成小写,以便进行比较。
-- -------------------- ---- ------- ---------------------------------- - ----- ------- ------ ------- -- - ---------- ----- -- --
示例
下面我们来看一些常见的验证场景。
验证属性类型
response.should.validate.bodyJson({ name: String, price: Number, enabled: Boolean, tags: Array, categories: Object, });
验证属性值
-- -------------------- ---- ------- ----------------------------------- ----- ----- ------- ------ ----- -------- ----- ----- ------- --------- ----------- - ------ ------------ -- ---
验证响应头
response.should.validate.header({ 'content-type': /json/, });
验证 cookie
response.should.validate.cookie({ session_id: '1234', });
验证响应体结构
-- -------------------- ---- ------- ------------------------------------- ----- --------- --------- -------- --------- ----------- - ----- - ----- --------- -- ------ - ----- --------- -- -- ---
总结
chai-validate-response 是一个方便快捷的 npm 包,可以帮助前端开发者在编写自动化测试时进行响应验证,本文介绍了它的使用方法并且讲解了一些常见的验证场景。我们希望本文可以帮助到大家,让大家可以更加方便地编写自动化测试,提高代码质量和开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d7a81e8991b448db378