介绍
unexpected-markdown
是一个 Node.js 模块,通过将预期的测试框架与 Markdown 文件结合使用,可以轻松地编写文档和测试用例。此模块扩展了 unexpected
测试库,并提供了一组用于测试 Markdown 文档的 API。
在本篇文章中,我们将详细介绍如何使用 unexpected-markdown
进行前端开发中的单元测试和文档编写。
安装
你可以使用 npm
包管理器全局安装 unexpected-markdown
:
--- ------- -- -------------------
或者,你可以将其作为依赖项添加到你的项目中:
--- ------- ---------- -------------------
使用
编写测试用例
首先,我们需要编写测试用例。在这里,我们将介绍如何使用 unexpected-markdown
来测试 Markdown 中的代码示例。假设我们有以下 Markdown 文件:
- --------- --------- --- ---------- --------------- -- --- --- ------- --- ------------- ----- ----- --------- - ---------------------- ----------------------- ---------------- ------------------------ ----------------
subtract(a, b)
从第一个数字中减去第二个数字并返回结果。
----- --------- - ---------------------- ---------------------------- ---------------- ----------------------------- -----------------
License
MIT © John Doe
-------- -------------- -------------------- ------- ------------------- ------------
这将输出测试结果:
--------- --- ------ -- - ------ --- --- ------- - ------ --- -------- ------- ----------- -- - ------ -------- --- ------- - ------ -------- -------- ------- - ------- ------
使用自定义的 expect 库
默认情况下,unexpected-markdown
使用内置的 unexpected
库来运行测试。但是,你也可以使用自己的 expect
库。例如,在以下示例中,我们将使用 Chai 库:
- --------- --------- --- ---------- --------------- -- --- --- ------- --- ------------- ----- ----- --------- - ---------------------- ----- - ------ - - ---------------- ----------------------- ---------------- ------------------------ ----------------
subtract(a, b)
从第一个数字中减去第二个数字并返回结果。
----- --------- - ---------------------- ----- - ------ - - ---------------- ---------------------------- ---------------- ----------------------------- -----------------
License
MIT © John Doe
---------------- ------- ------------------- --------- ---- ------------
自定义 API 测试规则
您还可以自定义 API 测试规则,以验证你的代码是否符合预期。以下是一个示例 Markdown 文件,其中使用了 unexpected
库的 type
和 value
断言:
- --------- --------- --- ---------- --------------- -- --- --- ------- --- ------------- ----- ----- --------- - ---------------------- ----- - ------ - - ---------------- ----------------------- ---------------- ------------------------- ----------------------- ---------------------------------------------- ----------------------------------------------------------- ---------- ---------------------------------------------------------------------------------------