2017-04-06 4 views
0

react-highchartsを使用するReactコンポーネントの基本的な煙のテストを実行しようとしているときに問題が発生しています。この子コンポーネントとして<ReactHighcharts />のレンダリングに固有の問題であると思われる、いくつかのinterwebsのsleuthingからReact Highchart Jest testing error: `InvalidCharacterError`

it('renders without crashing',() => { 
    const div = document.createElement('div'); 
    render(<MyComponent {...props} />, div); 
}); 

—> 
InvalidCharacterError 

    at exports.name (node_modules/jest-environmentjsdom/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js:10:11) 
    at a.createElement (node_modules/highcharts/highcharts.js:17:221) 
    at Object.a.svg.z.init (node_modules/highcharts/highcharts.js:92:155) 
    at Object.z.createElement (node_modules/highcharts/highcharts.js:63:3) 
    at Object.a.svg.z.createElement (node_modules/highcharts/highcharts.js:107:525) 
    at Object.a.svg.z.init (node_modules/highcharts/highcharts.js:101:44) 
    at Object.a.svg.a.VMLRenderer.B (node_modules/highcharts/highcharts.js:109:320) 
    at Object.N.getContainer (node_modules/highcharts/highcharts.js:252:329) 

:基本的な冗談で私の典型的な方法は、エラーを生成します。コンポーネントを再構築したり、テストを複雑にすることなく、この問題を回避するにはどうすればよいですか?

+0

ここでreactTestUtilsを使用しないでください。 'const myComponent = ReactTestUtils.renderIntoDocument();'このように、コンポーネントの参照があります。 aka .. myComponent.state'はそのコンポーネントの状態になります –

答えて

1

問題が子コンポーネントとしてレンダリングされており、親コンポーネントが吹き飛ばされないようにしようとしているので、Enzymeのshallowメソッドを使用して、子なしで親コンポーネントのみレンダリングできます。

it('renders without crashing',() => { 
    expect(shallow(<MyComponent {...props} />).exists()).toBeTruthy(); 
}); 
+1

スナップショットテストを使用して、子コンポーネントが正しい小道具を渡していることを確認することもできます。 –

+0

良いアイデア!この特定のケースでは、私が渡している唯一の小道具は、テスト可能な関数で生成する設定オブジェクトです。ここでは必要ありません。しかし、まだ良いアイデアは、私は他のコンポーネントのことを念頭に置いておきます。 – dangerismycat

関連する問題