简介
mdast-util-assert
是一个用于 mdast
(Markdown AST)的断言库,用于验证 mdast
中的节点是否符合预期。它可用于编写测试用例,以确保您的自定义转换器或插件不会意外破坏现有的语法或结构。
安装
使用 npm 进行安装:
npm install mdast-util-assert
使用
mdast-util-assert
包含以下方法:
assert(node: Node, condition?: boolean): void
assertParent(node: Node, parentType: string, condition?: boolean): void
assertChildren(node: Node, childType: string, condition?: boolean): void
assertNode(node: Node, type: string, condition?: boolean): void
assertText(node: Node, value: string, condition?: boolean): void
这些方法都非常适合验证 mdast
中的节点,详细说明如下:
assert(node: Node, condition?: boolean): void
验证是否存在当前节点。如果 condition
为 false
,则会触发 AssertionError
异常。
示例:
const assert = require('mdast-util-assert'); const { root, text } = require('mdast-builder'); const node = root([text('Hello, World!')]); assert(node, true); // 不会抛出异常 assert(node, false); // 触发异常:no node provided
assertParent(node: Node, parentType: string, condition?: boolean): void
验证当前节点的父节点是否匹配指定的类型。如果 condition
为 false
,则会触发 AssertionError
异常。
示例:
const assert = require('mdast-util-assert'); const { root, paragraph, text } = require('mdast-builder'); const node = root([paragraph([text('Hello, World!')])]); assertParent(node.children[0], 'root', false); // 触发异常:Expected parent of <paragraph…> to be <root>, got <undefined> assertParent(node.children[0], 'paragraph', true); // 不会抛出异常
assertChildren(node: Node, childType: string, condition?: boolean): void
验证当前节点的子节点是否都匹配指定的类型。如果 condition
为 false
,则会触发 AssertionError
异常。
示例:
-- -------------------- ---- ------- ----- ------ - ----------------------------- ----- - ----- ---------- ------- ---- - - ------------------------- ----- ---- - ------ ----------- -------------------- ----- --------------- --- --- -------------------- ------- ------- -- ------------- --- ----- ----- -- ------------ -- -- ------- --- -------- -- -- -------------------------------- ------------- ------ -- ------
assertNode(node: Node, type: string, condition?: boolean): void
验证当前节点是否与指定的类型匹配。如果 condition
为 false
,则会触发 AssertionError
异常。
示例:
const assert = require('mdast-util-assert'); const { root, text } = require('mdast-builder'); const node = root([text('Hello, World!')]); assertNode(node, 'root', false); // 触发异常:Expected <root…> node, got <text…> assertNode(node, 'text', true); // 不会抛出异常
assertText(node: Node, value: string, condition?: boolean): void
验证当前节点是否为文本节点,并且与指定的值匹配。如果 condition
为 false
,则会触发 AssertionError
异常。
示例:
const assert = require('mdast-util-assert'); const { root, text } = require('mdast-builder'); const node = root([text('Hello, World!')]); assertText(node, 'Hello, Mars!', false); // 触发异常:Expected <text…>, got <text…> with value "Hello, World!" assertText(node, 'Hello, World!', true); // 不会抛出异常
结论
mdast-util-assert
是一个强大的工具,用于验证 mdast
中的节点是否符合预期。如有必要,您可以使用它编写测试用例来确保自定义转换器或插件不会意外破坏现有的语法或结构。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f058d6a403f2923b035befc