使用Jest with Enzyme进行打字稿测试无法识别组件

时间:2017-08-09 15:58:16

标签: reactjs typescript testing enzyme jest

我使用Jest和Enzyme测试了Typescript。测试工作完美,但是当我添加一个组件时,它会给我一个Unterminated regular expression错误

import {} from 'jasmine';
import {shallow} from 'enzyme';
import {Show, Hide} from '../components/show_hide';

describe('<Show /> Tests', () => {
    it('Show should render once', () => {
        const component = shallow(<Show />);
        expect(component).toHaveLength(1);
    })
})

当我运行yarn test时,控制台上的结果是

 FAIL  __tests__/show_hide.ts
  ● Test suite failed to run

    /path/to/repo/__tests__/show_hide.ts: Unterminated regular expression (4:35)
        2 | describe('<Show /> Tests', () => {
        3 |     it('Show should render once', () => {
      > 4 |         const component = shallow(/>);, expect(component).toHaveLength(1));
          |                                    ^
        5 |     });
        6 | });
        7 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd19oaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vX190ZXN0c19fL3Nob3dfaGlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRy9CLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRTtJQUMxQixFQUFFLENBQUMsbUJBQW1CLEVBQUU7UUFDdkIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFPLElBQUksRUFDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUEifQ==

package.json内的jest配置为

  "jest": {
    "transform": {
      "^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "json"
    ],
  },

对此有何看法?

2 个答案:

答案 0 :(得分:13)

ts文件用于纯打字稿代码,而tsx用于反应(如jsx)。 将文件重命名为tsx

答案 1 :(得分:0)

似乎忘记导入React导致了这个问题。