如何使用react-test-renderer/shallow与typescript?

sli*_*wp2 4 typescript reactjs

我想用来react-test-renderer/shallow测试我的反应组件.

但是当我 import ShallowRenderer from 'react-test-renderer/shallow';

tsc 给我一个错误 'Module '"/Users/dulin/workspace/react-ts-webpack2/node_modules/@types/react-test-renderer/shallow/index"' has no default export.

那么,如何import ShallowRenderertypescript

- 更新 -

最后,我从index.test.tsx- > 更改我的测试文件名index.test.jsx以避免由此tsc引起的错误definition.

import * as React from 'react';
import * as TestUtils from 'react-dom/test-utils';
import * as ShallowRenderer from 'react-test-renderer/shallow';
import PanelHead from '../';

describe('PanelHead test suites', () => {

  it('t-1', () => {

    const renderer = new ShallowRenderer();
    renderer.render(<PanelHead />)
    const result = renderer.getRenderOutput();

    expect(result.type).toBe('div');

  });

});
Run Code Online (Sandbox Code Playgroud)

Har*_*dha 8

只有import ShallowRenderer from 'react-test-renderer/shallow';在默认导出时才能使用.看起来它没有默认导出,因此您无法使用上述语法.您可以将其导入为

import * as ShallowRenderer from 'react-test-renderer/shallow';
Run Code Online (Sandbox Code Playgroud)

现在,要创建一个ShallowRenderer可以调用方法ShallowRenderer.createRenderer()

const myShallowRenderer = ShallowRenderer.createRenderer();
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多相关信息.

希望能帮助到你 :)

  • 查看定义,您需要调用函数`createRenderer`来创建获取`ShallowRenderer`.所以你可以做`ShalloRenderer.createRenderer()` (3认同)