当你构建 Restful API 时,如何确保它们始终按照预期工作?测试是一个必不可少的步骤,以确保您的代码能够按照期望和规定的响应。 在本文中,我们将重点介绍使用 Mocha 和 Chai 来测试 REST API的方法。
Mocha 和 Chai 是什么?
Mocha 是一个流行的 JavaScript 测试框架。 它简单而灵活,可以用于测试任何 JavaScript 程序或库。 Chai 是一个用于 Node.js 和浏览器的行为驱动测试(BDD)的断言库,它提供了多种有用的断言,并允许使用者以强大的方式描述应用行为。
前提条件
在开始之前,请确保您已经安装了 Node.js 和相关的依赖。 否则,您需要安装它们并配置您的 Node.js 环境。
开始测试 REST API
首先,我们需要准备一个用于测试的简单 REST API。 确保您已经安装了 Express.js,以便于我们构建一个演示用的应用程序。
在此步骤中,我们将创建一个简单的 REST API,包括以下路线:
- GET /api/book - 获取所有书籍
- GET /api/book/:id - 获取指定 id 的书籍
- POST /api/book - 创建一本书
- PUT /api/book/:id - 更新指定 id 的书籍
- DELETE /api/book/:id - 删除指定 id 的书籍
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- ---------- - ----------------------- ----- ----- - - - --- -- ------ ---- ----- -------- ------- --- ----- ------------ ----- ---- -- - --- -- ------ --- ---- - ------------- ------- ------- ----- ----- ---- -- - --- -- ------ ------- ------- ------- -------- ----- ---- - -- -- --------------- --- --------------------------- -- ------- -------------------- ----- ---- -- - ---------------- --- -- ---- -- --- ------------------------ ----- ---- -- - ----- ---- - -------------- -- ---- --- ------------------------- -- ------- ------ ------------------------- ---- ---- --- ----- -- --- --- --------- --------------- --- -- ----- --------------------- ----- ---- -- - ----- ---- - - --- ------------ - -- ------ --------------- ------- ---------------- ----- ------------- -- ----------------- --------------- --- -- ---- -- --- ------------------------ ----- ---- -- - ----- ---- - -------------- -- ---- --- ------------------------- -- ------- ------ ------------------------- ---- ---- --- ----- -- --- --- --------- ---------- - --------------- ----------- - ---------------- --------- - -------------- --------------- --- -- ---- -- --- --------------------------- ----- ---- -- - ----- ---- - -------------- -- ---- --- ------------------------- -- ------- ------ ------------------------- ---- ---- --- ----- -- --- --- --------- ----- ----- - -------------------- ------------------- --- --------------- --- ----- ---- - ---------------- -- ----- ---------------- -- -- ---------------------- -- ---- --------------
编写测试用例
我们将编写测试用例来测试我们的 REST API。 在此过程中,我们将使用 Mocha 和 Chai 这两个工具。 它们可以安装在我们的项目中,帮助我们实现 BDD 行为驱动编程的方式,还能方便地编写断言来比较预期和实际结果。
安装 Mocha 和 Chai
我们首先需要安装 Mocha 和 Chai。
npm install --save-dev mocha chai
编写测试用例
下面是我们的测试用例:
-- -------------------- ---- ------- ----- --- - ------------------ ----- ---- - ---------------- ----- -------- - --------------------- ----- ------ - ------------ ------------------- ----------------- -- -- - ------------- -- - --------------- -------------- --- ------------- ----------- -- -- - ---------- ------ --- ------- ------ -- - ----------------- ----------------- ---------- ---- -- - ------------------------------------- ----------------------------------- ------------------------------------ ------- --- --- --- ------------- --------------- -- -- - ---------- ------ - ---- -- ----- - ----- ---- ------ -- - ----- ---- - - --- -- ------ ---- ----- -------- ------- --- ----- ------------ ----- ---- - ----------------- ----------------- ---------------------------- ---------- ---- -- - ------------------------------------- ------------------------------------ ------------------------------------- ------- --- --- ---------- ------ - --- ------ ---- -- ----- -- ------- ---- ------ -- - ----------------- --------------------- ---------- ---- -- - ------------------------------------- ------------------------------ ---- ---- --- ----- -- --- --- --------- ------- --- --- --- -------------- ----------- -- -- - ---------- ------ --- --- ------ ------ -- - ----- ---- - - ------ ---- ------- -- --- ----- ------- ----- ---------- ----- ---- -- ----------------- ------------------ ----------- ---------- ---- -- - ------------------------------------- ------------------------------------ -------------------------------------------- ---------------------------------------------- ------------------------------------------ ------- --- --- --- ------------- --------------- -- -- - ---------- ------ --- ---- -- ----- - ----- ---- ------ -- - ----- ---- - - --- -- ------ ---- ----- -------- ------- --- ----- ------------ ----- ---- - ----------------- ----- ----------- - - ------ ---- --------- --- -------- ------- --- ----- ------------ ----- ---- -- ----------------- ---------------------------- ------------------ ---------- ---- -- - ------------------------------------- ------------------------------------ --------------------------------------------------- ----------------------------------------------------- ------------------------------------------------- ------- --- --- ---------- ------ - --- ------ ---- -- ----- -- ------- ---- ------ -- - ----- ----------- - - ------ ---- --------- --- -------- ------- --- ----- ------------ ----- ---- -- ----------------- --------------------- ------------------ ---------- ---- -- - ------------------------------------- ------------------------------ ---- ---- --- ----- -- --- --- --------- ------- --- --- --- ---------------- --------------- -- -- - ---------- ------ --- ---- -- ----- - ----- ---- ------ -- - ----- ---- - - --- -- ------ ---- ----- -------- ------- --- ----- ------------ ----- ---- - ----------------- ----------------- ------------------------------- ---------- ---- -- - ------------------------------------- ------------------------------------ ------------------------------------- ---------------------------------- ------- --- --- ---------- ------ - --- ------ ---- -- ----- -- ------- ---- ------ -- - ----------------------------------------- ---------- ---- -- - ------------------------------------- ------------------------------ ---- ---- --- ----- -- --- --- --------- ------- --- --- --- ---
运行测试
现在,我们可以在终端中运行测试文件,以运行测试。
npm test
现在测试将运行,并显示每项测试结果和状态。
总结
在本文中,我们介绍了如何使用 Mocha 和 Chai 来测试一个简单的 REST API。 在实践中,这些测试方法可以帮助我们更好地检查代码,并确保始终按照预期工作,同时也可以更好地组织我们的代码,使代码更易于理解和修改。
希望通过本文对你 JavaScript 的 BDD 测试框架学习产生帮助,并能应用到实际工作中。
参考文献: Testing RESTful APIs with Mocha and Chai
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649b8cee48841e9894850518