测试

测试能确保你的代码按预期运行,并让你避免繁琐的调试工作。

查看 入门套件 文档,了解一个易于使用的、预配置完整的测试环境设置,它非常适合测试 Lit 组件。

Lit 是一个标准的现代 JavaScript 库,你可以使用几乎任何 JavaScript 测试框架来测试你的 Lit 代码。有许多流行的选择,包括 JestKarmaMochaJasmineWebdriverIOWeb Test Runner

为了有效地测试你的 Lit 代码,你需要确保你的测试环境支持以下几点。

Lit 组件是为在浏览器中运行而设计的,所以测试应该在浏览器环境中进行。专门用于测试 node 代码的工具可能不太适合。

虽然通过模拟 DOM 调用可以在没有浏览器的情况下进行测试,但我们不推荐这种方法,因为它无法以用户体验的方式测试代码。

你使用的测试环境必须支持使用现代 JavaScript,包括使用裸模块说明符的模块,或者适当地降级现代 JavaScript。更多详情请参见 旧版浏览器的要求 文档。

要在旧版浏览器上进行测试,你的测试环境需要加载一些 polyfills,包括 web components polyfills 和 Lit 的 polyfill-support 模块。更多详情请参见 Polyfills 文档。

Web Test Runner 是专门为测试像 Lit 这样的现代 web 库而设计的,它支持自定义元素和 Shadow DOM 等现代 web 特性。请参阅 Web Test Runner 的 入门指南

为了支持旧版浏览器,你需要按如下方式配置 Web Test Runner:

安装 @web/dev-server-legacy

设置 web-test-runner.config.js

WebdriverIO 是组件测试或端到端测试的好选择。它有非常令人信服的优势,比如支持 模拟代码覆盖率 报告。

你可以通过以下方式在项目中设置 WebdriverIO:

它会启动一个配置向导,引导你回答一些问题。确保选择以下选项:

  • 你想进行什么类型的测试?
    组件或单元测试 - 在浏览器中
  • 你使用哪个框架来构建组件?
    Lit

其余问题可以根据需要回答。

要测试组件,你必须在测试开始前将其渲染到测试页面中,并确保之后进行清理:

在 WebdriverIO 文档中查找更多关于 元素断言在 Shadow DOM 中查找元素更多 的信息。