用Jest配置酶转json

时间:2019-03-25 15:30:50

标签: javascript reactjs jestjs

我正在尝试通过玩笑和酶来测试我的反应成分。

当我在特定的测试案例中导入酶到json时,它起作用了。但是,我不想配置手动操作,而不是手动执行。

我已经尝试添加“ snapshotSerializers”:[“ enzyme-to-json / serializer”] 到我开玩笑的配置,但似乎无法正常工作。

如何配置笑话在包装器上使用酶转json?

此代码有效

Header.test.js

import React from 'react'
import { shallow } from 'enzyme'
import toJSON from 'enzyme-to-json'
import Header from '../../components/Header'

test('Should render Header correctly', () => {
    const wrapper = shallow(<Header />)
    expect(toJSON(wrapper)).toMatchSnapshot()
})

我希望Jest在我所有的包装器中自动使用酶转json,以便该代码也能正常工作:

Header.test.js

import React from 'react'
import { shallow } from 'enzyme'
import Header from '../../components/Header'

test('Should render Header correctly', () => {
    const wrapper = shallow(<Header />)
    expect(wrapper).toMatchSnapshot()
})

jest.config.json

{
    "setupFiles": [
        "raf/polyfill",
        "<rootDir>/src/tests/setupTests.js",
    ],
    "snapshotSerializers": ["enzyme-to-json/serializer"]
}

测试脚本

“测试”:“ jest --config = jest.config.json”

预期

exports[`Should render Header correctly 1`] = `
<header>
  <h1>
    Title
  </h1>
  <NavLink
    activeClassName="is-active"
    exact={true}
    to="/"
  >
    Home
  </NavLink>
  <NavLink
    activeClassName="is-active"
    to="/create"
  >
    Create
  </NavLink>
</header>
`;

结果

exports[`Should render Header correctly 1`] = `ShallowWrapper {}`;

2 个答案:

答案 0 :(得分:0)

在jest的配置文件中还有一个额外的“,”,但控制台无法通过某种方式检测到该错误。

jest.config.json

{
    "setupFiles": [
        "raf/polyfill",
        "<rootDir>/src/tests/setupTests.js", <------- this comma
    ],
    "snapshotSerializers": ["enzyme-to-json/serializer"]
}

删除要修复的逗号

答案 1 :(得分:0)

我遇到了同样的问题。有趣的是,我复制了您的文件,而我的setupTests位于src文件夹的根目录下,而Jest仍然很高兴(没有适配器投诉!)。

现在我仅使用导入。