2

我正在尝试将开玩笑的单元测试添加到我的新 react-redux 项目中。我创建了我的第一个测试文件来测试我的一个容器,例如:

jest.unmock('../../src/containers/event-form')

import React from 'react'
import ReactDOM from 'react-dom'
import TestUtils from 'react-addons-test-utils'
import EventForm from '../../src/containers/event-form'

describe('EventForm', () => {
})

在 event-form.js 文件中,我从动作中导入了一个函数,即:

import { postEvent } from '../actions/index'

在 actions.index.js 文件中,我正在导入 axios 模块:

import axios from 'axios'

如果我此时尝试运行测试,我会从 axios 代码中得到错误:

TypeError: Cannot set property 'defaults' of undefined
  at Object.<anonymous> (/export/www/soccer.hub.testui/node_modules/axios/lib/axios.js:83:16)
  at Object.<anonymous> (/export/www/soccer.hub.testui/node_modules/axios/index.js:1:137)
  at Object.<anonymous> (/export/www/soccer.hub.testui/src/actions/index.js:7:62)
  at Object.<anonymous> (/export/www/soccer.hub.testui/src/containers/event-form.js:4:40)
  at Object.<anonymous> (/export/www/soccer.hub.testui/__tests__/containers/event-form-test.js:6:44)
  at process._tickCallback (node.js:369:9)

我认为开玩笑的整个事情就是一切都被嘲笑了。actions/index.js 似乎是如何随着它的导入而被初始化的?

4

1 回答 1

0

您需要使用模拟axios模块jest.mock()。如果您仍然需要帮助,这是一个老问题。我很乐意提供帮助。

于 2019-09-17T11:31:41.130 回答