Javascript 在React中测试DOM更新
在React组件中,我使用一个外部库来创建复杂组件,并在渲染时对其进行轻微修改。因此,在我自己的组件中,我使用元素查询和变异观察器之类的东西来获取DOM中的渲染元素,并根据DOM本身的状态(而不是外部组件,因为我无法访问其状态)动态添加我自己的修改 这很好,但我还没有弄清楚如何测试这个功能[开玩笑]。特别是,我添加了变异监听器,它根据外部组件呈现的HTML添加我自己的小组件,当鼠标悬停在动态创建的元素列表上时添加一个按钮。当我试图开玩笑地测试它时,没有执行任何逻辑,并且无法测试我添加的功能,因为对DOM的更改不会出现,即使在完全渲染的情况下也是如此。特别是,在测试期间,我发现我在组件中使用的查询没有任何值,因为它们需要外部组件为我自己的组件完全呈现HTML以观察更改 我需要一种方法来测试我的组件,使外部组件能够呈现,但我自己的组件可以在其自身状态发生变化时执行更新Javascript 在React中测试DOM更新,javascript,reactjs,testing,Javascript,Reactjs,Testing,在React组件中,我使用一个外部库来创建复杂组件,并在渲染时对其进行轻微修改。因此,在我自己的组件中,我使用元素查询和变异观察器之类的东西来获取DOM中的渲染元素,并根据DOM本身的状态(而不是外部组件,因为我无法访问其状态)动态添加我自己的修改 这很好,但我还没有弄清楚如何测试这个功能[开玩笑]。特别是,我添加了变异监听器,它根据外部组件呈现的HTML添加我自己的小组件,当鼠标悬停在动态创建的元素列表上时添加一个按钮。当我试图开玩笑地测试它时,没有执行任何逻辑,并且无法测试我添加的功能,因为
如果在测试过程中这些查询没有任何结果,我如何测试基于元素查询执行的更新的功能?这就是这样一种黑客的问题:你在做事情的方式之外,所以像测试框架这样的东西往往会崩溃。我知道黑客可能是以您想要的方式使用此外部库的唯一方法,但在可维护性方面存在成本。我会问黑客是否真的是解决问题的唯一方法。例如,你能不能用叉子叉图书馆?是的,从所有实际的角度来看,叉图书馆将是一项相当大的任务。我将把它归结为一些只能通过完整的UI/E2E测试来实际测试的东西。