javascript 如何在网页中独立使用jest-dom?

oug3syen  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(123)

我想单独/独立使用/运行jest-dom匹配器(不是在测试中,而是在网页中),如下所示:

import matchers from '@testing-library/jest-dom/matchers'
window.matchers = matches

这就是Jest-dom GitHub所宣称的:
其目的是使它可以独立于这些其他库使用,同时也更清楚地表明这些其他库独立于jest,并且也可以与其他测试运行程序一起使用。
Btw, this is why I want to do it.
然后我运行webpack命令并将自动生成的JS文件(位于dist)加载到页面中。
最后,在页面中,我运行以下代码:

console.log(matchers.toBeDisabled(someElem))

它工作得很好。但是,当我运行一个接收到参数的匹配器时,它就失败了。例如:

console.log(matchers.toHaveAccessibleName(someElem, "name 1"))

它将失败,并显示:

this.equals is not a function

经过几个小时的阅读,我明白了原因。这个函数是由Jest的expect包提供的,它是作为上下文传递的。好吧,但是我怎么才能让它可用呢?
There's a similar question but it's a TypeScript error.

3okqufwl

3okqufwl1#

import { expect } from 'expect'
import TestingLibraryMatchers from '@testing-library/dom/matchers.js'

expect.extend(TestingLibraryMatchers)

globalThis.expect = expect

将其捆绑为ESM或IIFE,然后您可以像这样使用它

expect(someElement).toBeDisabled()

相关问题