跳到主要内容

Marko Testing Library

Marko Testing Library建立 在DOM Testing Library的基础上,增加了与 Marko 组件一起工作的 API。

npm install --save-dev @marko/testing-library

问题

你想为你的 Marko 组件编写可维护的测试。作为这个目标的一部分,你希望你的测试避免 包括你的组件的实现细节,而是专注于使你的测试给你带来信心,因为他们是为了这个目的 。作为这个目标的一部分,你希望你的测试套件从长远来看是可维护的,所以你的组件的重 构(实现的变化,但不是功能的变化)不会破坏你的测试,并减缓你和你的团队。

解决方案

@marko/testing-library 是一个非常轻量级的解决方案,用于测试 Marko 组件。它在 @testing-library/dom 的基础上提供轻量级的实用功能,以鼓励更好的测试实践。它的 主要指导原则是:

你的测试越像你的软件的使用方式,他们就越能给你信心

因此,与其处理渲染的 Marko 组件的实例,你的测试将与实际的 DOM 节点一起工作。这个 库所提供的工具有助于以用户的方式查询 DOM。通过标签文本寻找元素(就像用户一样), 通过文本寻找链接和按钮(就像用户一样)。它包含了一个小型的有针对性的 API,如果需 要的话,可以通过一些内置的逃生舱门来摆脱你的束缚。

这个库鼓励你的应用程序更容易访问,并允许你让你的测试更接近于以用户的方式使用你的 组件,这允许你的测试给你更多的信心,当一个真正的用户使用它时,你的应用程序会工作 。

这个库不是什么:

  1. 一个测试运行器或框架
  2. 特定一个测试框架,你可 以用 Jestmocha或其他测试运行器来使用 它。

注意:这个库是建立在 DOM Testing Library 之 上的,而 DOM Testing Library 是查询背后大部分逻辑的所在。