2016-01-27 33 views
6

次のreactjsページのunitTestを記述するように求められます。私はしかし、私のテストはつまりタイトルと子供(私は折りたたみに私の小道具を疑っています、上記のタイトルにエラーを投げているReactjs:TypeError:未定義のプロパティ 'propType'を読み取ることができません

describe('Collapsible',()=>{ 
    it('works',()=>{ 
     let renderer = createRenderer(); 
     renderer.render(<Collapsible title="MyTitle"><span>HEllo</span></Collapsible>); 
     let actualElement = renderer.getRenderOutput(); 
     let expectedElement = (<details><summary>title</summary>Details</details>); 
     expect(actualElement).toEqual(expectedElement);      
    }); 
}); 

のように、以下の私のテストを書いたぇHere

export default class Collapsible extends React.Component { 
    static propTypes = { 
     title: React.PropTypes.string, 
     children: React.PropTypes.any, 
    }; 

    render() { 
     const { title } = this.props; 
     return (
      <details> 
       <summary>{title}</summary> 
       {this.props.children} 
      </details> 
     ); 
    } 
} 

)はテストから割り当てていません。どうすればいいですか?どんな助けや指導も高く評価されます。 the docsパー

答えて

14

おかげで、すべて。私はCollapsibleを誤ってテストファイルにインポートしていました。以下は

import React from 'react'; 
import expect from 'expect'; 
import {createRenderer} from 'react-addons-test-utils'; 
import Collapsible from '../Collapsible'; 

に変更した後は動作するようです、私は

import React from 'react'; 
import expect from 'expect'; 
import {createRenderer} from 'react-addons-test-utils'; 
import { Collapsible } from '../Collapsible.js'; 

前に輸入された方法です。 Collapsibleを既存の変数/オブジェクトとしてインポートしていました。ドキュメントといくつかのチュートリアルを読んだ後、私は実現しました。

+1

私の場合、これは逆の方法です - 私はreduxの 'connect()'メソッドを追加し、別の名前でエクスポートしました。テストでそれを変更するのを忘れました。 –

1

次のように、ES6クラスで小道具を定義するための1つの方法は次のとおりです。お時間を

export default class Collapsible extends React.Component { 
    render() { 
     const { title } = this.props; 
     return (
      <details> 
       <summary>{title}</summary> 
       {this.props.children} 
      </details> 
     ); 
    } 
} 

Collapsible.propTypes = { 
    title: React.PropTypes.string, 
    children: React.PropTypes.any, 
}; 
+0

応答に感謝します。我々はコンポーネントを使用し、正常に動作しています。上記のunitTestを実装している間、私はisssueに遭遇します。私は上記のuniTestファイルで私の小道具を渡す方法でエラーが疑われています。しかし、私はどこでどのようにこれを修正するか分からない。 –

関連する問題