Jest - 测试 html<详细信息>带有错误的标记:未捕获类型错误:无法读取属性“body”;为空详细信息>
我尝试用 jest、jsdom、enzyme 测试我的简单细节反应组件,但没有成功。如果我想将详细信息组件的属性“open”设置为 true,那么笑话将出现 Uncaught [TypeError: Cannot read property 'body' of null] 错误。
以下是我的代码的简单版本
import { mount } from 'enzyme'
import React from 'react'
describe("Expander", () => {
it("should render details in open status", () => {
const wrapper = mount(
<details
open={true}
>
<summary>Categorry</summary>
This is content for Category
</details>
)
})
})
整个错误回溯如下所示
Ran all test suites matching /__tests__\/components\/product\/Expander.js/i.
console.error
Error: Uncaught [TypeError: Cannot read property 'body' of null]
at reportException (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:24)
at innerInvokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:341:9)
at invokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLDetailsElementImpl._dispatch (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:205:9)
at fireAnEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/helpers/events.js:18:36)
at HTMLDetailsElementImpl._dispatchToggleEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js:17:5)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7) TypeError: Cannot read property 'body' of null
at getActiveElement (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:1449:16)
at getActiveElementDeep (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:7767:17)
at getSelectionInformation (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:7800:21)
at prepareForCommit (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:10163:26)
at commitRootImpl (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:23085:29)
at unstable_runWithPriority (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js:468:12)
at runWithPriority$1 (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11276:10)
at commitRoot (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:22990:3)
at performSyncWorkOnRoot (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:22329:3)
at /Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11327:26
at unstable_runWithPriority (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js:468:12)
at runWithPriority$1 (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11276:10)
at flushSyncCallbackQueueImpl (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11322:9)
at flushSyncCallbackQueue (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11309:3)
at batchedEventUpdates$1 (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:22403:7)
at batchedEventUpdates (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:3745:12)
at dispatchEventForPluginEventSystem (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:8507:3)
at attemptToDispatchEvent (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:6005:3)
at dispatchEvent (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:5924:19)
at unstable_runWithPriority (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js:468:12)
at dispatchUserBlockingUpdate (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:5894:5)
at HTMLDivElement.callTheUserObjectsOperation (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
at innerInvokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:338:25)
at invokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLDetailsElementImpl._dispatch (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:205:9)
at fireAnEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/helpers/events.js:18:36)
at HTMLDetailsElementImpl._dispatchToggleEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js:17:5)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7)
at VirtualConsole.<anonymous> (node_modules/jsdom/lib/jsdom/virtual-console.js:29:45)
at reportException (node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:70:28)
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:341:9)
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLDetailsElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:205:9)
at fireAnEvent (node_modules/jsdom/lib/jsdom/living/helpers/events.js:18:36)
任何人都可以给我建议如何解决它或建议导致此类问题的原因吗?我将非常感谢任何相关信息。
谢谢。
I have tried to test my simple detail react component with jest, jsdom, enzyme without success. If I want to set attribute "open" of my detail component to true, then the jest will run in to Uncaught [TypeError: Cannot read property 'body' of null] error.
Following is simple version of my code
import { mount } from 'enzyme'
import React from 'react'
describe("Expander", () => {
it("should render details in open status", () => {
const wrapper = mount(
<details
open={true}
>
<summary>Categorry</summary>
This is content for Category
</details>
)
})
})
The whole error traceback is like following
Ran all test suites matching /__tests__\/components\/product\/Expander.js/i.
console.error
Error: Uncaught [TypeError: Cannot read property 'body' of null]
at reportException (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:24)
at innerInvokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:341:9)
at invokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLDetailsElementImpl._dispatch (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:205:9)
at fireAnEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/helpers/events.js:18:36)
at HTMLDetailsElementImpl._dispatchToggleEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js:17:5)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7) TypeError: Cannot read property 'body' of null
at getActiveElement (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:1449:16)
at getActiveElementDeep (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:7767:17)
at getSelectionInformation (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:7800:21)
at prepareForCommit (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:10163:26)
at commitRootImpl (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:23085:29)
at unstable_runWithPriority (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js:468:12)
at runWithPriority$1 (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11276:10)
at commitRoot (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:22990:3)
at performSyncWorkOnRoot (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:22329:3)
at /Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11327:26
at unstable_runWithPriority (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js:468:12)
at runWithPriority$1 (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11276:10)
at flushSyncCallbackQueueImpl (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11322:9)
at flushSyncCallbackQueue (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:11309:3)
at batchedEventUpdates$1 (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:22403:7)
at batchedEventUpdates (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:3745:12)
at dispatchEventForPluginEventSystem (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:8507:3)
at attemptToDispatchEvent (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:6005:3)
at dispatchEvent (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:5924:19)
at unstable_runWithPriority (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js:468:12)
at dispatchUserBlockingUpdate (/Users/htseng/Documents/code/store_fe/node_modules/react-dom/cjs/react-dom.development.js:5894:5)
at HTMLDivElement.callTheUserObjectsOperation (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
at innerInvokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:338:25)
at invokeEventListeners (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLDetailsElementImpl._dispatch (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:205:9)
at fireAnEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/helpers/events.js:18:36)
at HTMLDetailsElementImpl._dispatchToggleEvent (/Users/htseng/Documents/code/store_fe/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js:17:5)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7)
at VirtualConsole.<anonymous> (node_modules/jsdom/lib/jsdom/virtual-console.js:29:45)
at reportException (node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:70:28)
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:341:9)
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLDetailsElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:205:9)
at fireAnEvent (node_modules/jsdom/lib/jsdom/living/helpers/events.js:18:36)
Can anyone give me advice how to solve it or suggest the reason that cause such problem? I would deeply appreciate any related information.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论