react: typescript jest && enzyme

Install Jest

1、install jest dependencies

jest @types/jest ts-jest -D

2、jest.config.js

module.exports = {
  "roots": [
    "<rootDir>/src"
  ],
  "transform": {
    "^.+\.tsx?$": "ts-jest"
  },
  "testRegex": "(/__tests__/.*|(\.|/)(test|spec))\.tsx?$",
  "moduleFileExtensions": [
    "ts",
    "tsx",
    "js",
    "jsx",
    "json",
    "node"
  ]
}

3、test jest

foo.ts

export const sum = (...args) => args.reduce((acc, val) => acc+val, 0)

foo.test.ts

import {sum } from "./foo";
test("basic", () => {expect(sum()).toBe(0)})
test("basic begin", () => {expect(sum(1,2,3)).toBe(6)})

Install Enzyme

1、install enzyme dependencies

enzyme @types/enzyme enzyme-to-json enzyme-adapter-react-16 @types/enzyme-adapter-react-16

2、configue enzyme setup-test.ts

import { configure } from 'enzyme';
import * as Adapter from 'enzyme-adapter-react-16';

configure({ adapter: new Adapter() });

3、update jest.config.js

module.exports = {
  "roots": [
    "<rootDir>/src"
  ],
  "setupFileAfterEnv": ["<rootDir>/setup-test.ts"]  
  "transform": {
    "^.+\.tsx?$": "ts-jest"
  },
  "testRegex": "(/__tests__/.*|(\.|/)(test|spec))\.tsx?$",
  "snapshotSerializers": ["enzyme-to-json/serializer"],
  "moduleFileExtensions": [
    "ts",
    "tsx",
    "js",
    "jsx",
    "json",
    "node"
  ]
}

4、update tsconfig.js

"exclude": **/*.test.ts""

原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/11227633.html