在进行接口测试时,针对返回结果的判断是必不可少的。Chai 是一个流行的 JavaScript 断言库,能够方便地进行语义化的测试断言。本篇文章将介绍如何使用 Chai 进行接口测试,以及如何判断返回结果是否包含指定值。
关于 Chai
Chai 是一个流行的 JavaScript 断言库,它支持 BDD/TDD 风格的测试语法,并能够提供丰富的匹配器(Matcher)来比对测试结果。
在使用 Chai 进行接口测试时,我们可以使用其提供的 expect
和 assert
方法来对返回结果进行验证。
其中,expect
方法具有链式调用的特点,可以较为清晰地表达测试断言的逻辑。而 assert
方法则更加直接,是一个断言方法,如果断言失败,则直接抛出异常。
如何判断返回结果是否包含指定值
考虑这样一个场景:我们要访问一个返回 json 格式数据的接口,并验证返回结果是否包含指定字段。那么我们该如何衡量其是否符合预期呢?
首先,我们需要构造一个请求访问该接口,并获取其返回值。这里我们使用 axios
库:
const axios = require('axios') axios.get('https://xxx.com/api').then(response => { const { data } = response // TODO: 验证返回结果 })
接着,我们可以使用 Chai 提供的 to.include
匹配器,对返回结果进行断言。to.include
匹配器用于判断是否包含指定值:
-- -------------------- ---- ------- ----- ------ - ---------------------- ---------------------------------------------- -- - ----- - ---- - - -------- ------------------------- ----- -- -------- --------- -- --
上述代码中,我们使用 expect
方法对 data
进行断言,要求其包含一个 code 值为 0,message 值为 'success' 的对象。如果返回的 data
不包含这两个字段,测试就会失败,并抛出异常。
当然,to.include
还能够用于判断是否包含一个具体值,例如:
expect(data).to.include('username')
此时,若 data
中缺少 username
字段,测试就会失败。
总结
本文介绍了如何使用 Chai 进行接口测试,并对如何判断返回结果是否包含指定值进行了详细说明。
具体而言,我们使用了 axios
库访问一个接口,并使用 expect
方法对结果进行断言,通过 to.include
匹配器判断结果是否包含指定字段或值。希望本文能对你在接口测试中的工作有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649803f648841e9894513d5f