Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React:jsdom13错误:错误:connect-econnrefered127.0.0.1:80_Reactjs_Jestjs_React Testing Library - Fatal编程技术网

Reactjs React:jsdom13错误:错误:connect-econnrefered127.0.0.1:80

Reactjs React:jsdom13错误:错误:connect-econnrefered127.0.0.1:80,reactjs,jestjs,react-testing-library,Reactjs,Jestjs,React Testing Library,我已经为自定义挂钩创建了一个测试。所有测试都通过了,但我收到了错误,不确定如何找到根本原因。我已经试过了,但是我找不到任何有用的信息。 钩子只是有一个axios请求。我没有直接分配location.href的部分,这是我看到的另一件事,通常是导致此错误的原因 import axios from 'axios' jest.mock('axios') describe('hooks', ()=>{ it('test custom hook', async()=>{ con

我已经为自定义挂钩创建了一个测试。所有测试都通过了,但我收到了错误,不确定如何找到根本原因。我已经试过了,但是我找不到任何有用的信息。 钩子只是有一个axios请求。我没有直接分配location.href的部分,这是我看到的另一件事,通常是导致此错误的原因

import axios from 'axios'

jest.mock('axios')
describe('hooks', ()=>{

  it('test custom hook', async()=>{
    const { result, waitForNextUpdate } = await renderHook(()=> customHook())
    axios.get.mockResolvedValue(dataJSON)
    expect(axios.get).toHaveBeenCalledTimes(1) // received 0
    await waitForNextUpdate()
    expect(axios.get).toHaveBeenCalledTimes(1) //received 2
  })
})
错误:

console.error node_modules/jest-environment-jsdom-thirteen/node_modules/jsdom/lib/jsdom/virtual-console.js:29
    Error: Error: connect ECONNREFUSED 127.0.0.1:80
        at Object.dispatchError (C:\project\node_modules\jest-environment-jsdom-thirteen\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:60:19)
        at Request.client.on.err (C:\project\node_modules\jest-environment-jsdom-thirteen\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:674:20)
        at Request.emit (events.js:203:15)
        at Request.onRequestError (C:\project\node_modules\request\request.js:877:8)
        at ClientRequest.emit (events.js:198:13)
        at Socket.socketErrorListener (_http_client.js:401:9)
        at Socket.emit (events.js:198:13)
        at emitErrorNT (internal/streams/destroy.js:91:8)
        at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
        at process._tickCallback (internal/process/next_tick.js:63:19) undefined
jest配置:

"jest": {
    "moduleNameMapper": {
      "\\.(css|less|sass)$": "<rootDir>/_mocks_/styleMock.js"
    },
    "collectCoverageFrom": [
      "**/*.{js,jsx,ts,tsx}",
      "!<rootDir>/node_modules/",
      "!src/index.js",
      "!src/i18n.js",
      "!<rootDir>/_mocks_/*",
      "!src/setupProxy.js",
    ]
  }
用户提供者:

import React, { useEffect } from 'react'

import { Loading } from 'components'
import UserContext from 'context/UserContext'
import { customHook } from 'hooks/User/customHook'

const UserProvider = () => {
  const { userDetails } = customHook()

  const renderContent = () => {
    if (userDetails.loading) {
      return (
        <div className='loading'>
          <Loading size='large' data-testid='userProfileLoadingId' className='loading-content' />
        </div>
      )
    } else return dashbaordComponent
  }

  const contextValue = {
    userDetail: userDetails.userInfo,
  }

  return (
    <UserContext.Provider value={contextValue}>
      {renderContent()}
    </UserContext.Provider>
  )
}
import React,{useffect}来自“React”
从“组件”导入{Loading}
从“context/UserContext”导入UserContext
从“hooks/User/customHook”导入{customHook}
const UserProvider=()=>{
const{userDetails}=customHook()
常量renderContent=()=>{
if(userDetails.loading){
返回(
)
}否则返回dashbaordComponent
}
常量上下文值={
userDetail:userDetails.userInfo,
}
返回(
{renderContent()}
)
}

发布的代码中有几个问题。在
\uuuu mocks\uuuu
中是否有手动模拟
axios
?现在还不清楚,如果它被嘲笑,它怎么可能发出真正的请求。请确认将
axios.get.mockResolvedValueOnce(dataJSON)
替换为
axios.get.mockResolvedValueOnce(dataJSON)
是否会删除此错误,以便缩小范围。没有针对axios的手动模拟…我只是使用了自动模拟axios模块的
jest.mock('axios')
。切换到
axios.get.mockResolvedValue
没有删除错误,我添加了
expect(axios.get).toHaveBeenCalledTimes(1)
,但由于调用了两次而失败。如果我在测试中的
waitForNextUpdate()
和axios调用之前添加该行,它将被调用0次。不确定这是否有用
jest.mock('axios')
可以从
\uuuumocks\uuuuuu
中选择与实际不同的手动模拟。如果没有,情况就不是这样。然后,问题特定于执行请求的其他测试。现在还不知道这是发生在这个套房还是其他房间。您必须缩小导致此问题的测试范围。是的,这个钩子中的逻辑是错误的,将导致多个请求。它怎么会错呢?或者它是错的呢?也许这就是问题所在?这是唯一给出此错误的测试。。。。当我尝试测试钩子时,在发布的代码中有几个问题。在
\uuuu mocks\uuuu
中是否有手动模拟
axios
?现在还不清楚,如果它被嘲笑,它怎么可能发出真正的请求。请确认将
axios.get.mockResolvedValueOnce(dataJSON)
替换为
axios.get.mockResolvedValueOnce(dataJSON)
是否会删除此错误,以便缩小范围。没有针对axios的手动模拟…我只是使用了自动模拟axios模块的
jest.mock('axios')
。切换到
axios.get.mockResolvedValue
没有删除错误,我添加了
expect(axios.get).toHaveBeenCalledTimes(1)
,但由于调用了两次而失败。如果我在测试中的
waitForNextUpdate()
和axios调用之前添加该行,它将被调用0次。不确定这是否有用
jest.mock('axios')
可以从
\uuuumocks\uuuuuu
中选择与实际不同的手动模拟。如果没有,情况就不是这样。然后,问题特定于执行请求的其他测试。现在还不知道这是发生在这个套房还是其他房间。您必须缩小导致此问题的测试范围。是的,这个钩子中的逻辑是错误的,将导致多个请求。它怎么会错呢?或者它是错的呢?也许这就是问题所在?这是唯一给出此错误的测试。。。。当我试着测试钩子的时候
import React, { useEffect } from 'react'

import { Loading } from 'components'
import UserContext from 'context/UserContext'
import { customHook } from 'hooks/User/customHook'

const UserProvider = () => {
  const { userDetails } = customHook()

  const renderContent = () => {
    if (userDetails.loading) {
      return (
        <div className='loading'>
          <Loading size='large' data-testid='userProfileLoadingId' className='loading-content' />
        </div>
      )
    } else return dashbaordComponent
  }

  const contextValue = {
    userDetail: userDetails.userInfo,
  }

  return (
    <UserContext.Provider value={contextValue}>
      {renderContent()}
    </UserContext.Provider>
  )
}