2016-11-05 22 views
1

私は、componentWillMountライフサイクルメソッドでgetJSONリクエストを行うコンポーネントをテストしようとしています。それは次のコードを持っています:酵素試験のprops.params

api.getJSON(`users/${this.props.params.id}`) 
      .done((result) => { 
       this.setState({user: result}); 
      }); 

ご覧のとおり、これはprops.params.idを使って要求しています。問題は私のテストにあります。 npm testを実行すると、未定義のプロパティを読み取ることができません。未定義の値はprops.paramsです。どのようにしてこの物体を酵素で得ることができますか?

答えて

1

これはモカと酵素を用いて一つの方法である: - インストールjsdomnpm install --save-dev --save-exact jsdom jsdom-global
- (内部記述)あなたの前の文にjsdomをロード

before(function() { 
     this.jsdom = require('jsdom-global')() 
    }) 

    after(function() { 
     this.jsdom() 
    }) 


-
は、今すぐあなたのテスト使用中マウントはこのようになります:

const someData = {data1:'yyyyyy'}; 
const wrapper = mount(<YourComponent yourProp={someData} />); 


"yourProp"はparamsである必要があります。この方法でデータをプロパティに渡すことができます。
このヘルプが必要です。

+0

また、テストフォルダ(test \ mocha.ops)内に次のようにmocha.optsがあります。-r jsdom-global/register。また、--requireオプション(mocha --require)でmochaを呼び出します。 – Hosar

+0

ありがとうございました! – Jake

関連する問題