2015-10-02 100 views
1

我使用的使用作出反應造就了高圖表組件。我必須爲它編寫測試,並且基礎結構是Jasmine/Karma/React TestUtils。HighChart測試陣營錯誤#13

我已經寫以下代碼:

const component: React.Component<{}, {}> = TestUtils.renderIntoDocument(
      <EmailActivityBreakdown trendData={trendData}/> 
     ); 

我consistenly得到錯誤#13 http://www.highcharts.com/errors/13(實例的圖表組件的 「EmailActivityBreakdown」 對象內時)。

觀光正常工作通常與組分(即在非測試模式的情況下)。我如何使用ReactTest框架內的「renderTo」來創建圖表元素來工作?

謝謝。在這種情況下

回答

1

主要問題是getElementById噶支持。 高圖表使用這些代碼,找出EmailActivityBreakdown ID:

if (Fa(a)) this.renderTo = a = A.getElementById(a); 

在噶測試A.getElementById(a)返回null這就是爲什麼產生這個錯誤。 目前測試高圖噶你需要fixture。 這是示例代碼:

import React from 'react' 
import TestUtils from 'react-addons-test-utils' 

describe('(View) EmailActivityBreakdown', function() { 

    beforeEach(function() { 
     const fixture = '<div id="EmailActivityBreakdown"></div>' 

     document.body.insertAdjacentHTML(
      'afterbegin', 
      fixture) 

     TestUtils.renderIntoDocument(<EmailActivityBreakdown 
      trendData={trendData}/>) 
    }) 

    it('chart is rendered', function() { 
     expect(document.getElementById('highcharts-0').innerHTML).to.exist 
    }) 

})