2016-03-01 13 views
15

私は、モカ酵素を使って反応成分のユニットテストを作成しています。以下はサンプルコンポーネントです。モカ、酵素:酵素を用いた反応成分のカスタムテスト機能ユニット

foo.jsは

class Foo extends React.Component { 
    customFunction=() => { 
    } 

    render() { 
     return (<div className={this.props.name}/>); 
    } 
} 

そして、ここでは、テストファイルです。

はFoo-Test.js

import React from 'react'; 
import { expect } from 'chai'; 
import { shallow, mount, render } from 'enzyme'; 
import Foo from '../src/Foo'; 

describe("A suite", function() { 
    it("contains spec with an expectation", function() { 
     expect(shallow(<Foo />).contains(<div className="foo" />)).to.equal(true); 
    }); 

    it("contains spec with an expectation", function() { 
     expect(shallow(<Foo />).is('.foo')).to.equal(true); 
    }); 
}); 

すべてが良いです。しかし、私は理解していないどのようにfoo.jsはでユニットテストcustomFunction我々は酵素にこの質問に対する最良の答えは実際にそれがcustomFunctionが実際にやっているということであるかに依存し

答えて

26

...

することができますを使用しているにこのような関数を呼び出します。それは、インスタンス自体で状態を設定する機能ですので、レンダリングされた出力がどのように見えるかに影響する場合

wrapper.instance().customFunction('foo', 'bar'); 

を、あなたは.update()同様

wrapper.instance().customFunction('foo', 'bar'); // uses setState internally 
wrapper.update(); // updates render tree 
// do assertions on the rendered output 
を呼び出したいこと
+0

それは働いている。ありがとうございます.. – pnsrinivasreddy

+0

しかし、このinstace()メソッドはグローバルスコープに関する問題を持っています。レンダリングされるコンポーネントにはlocalStorageがあります。 ReferenceError:localStorageがスローされたコンソールをテストしている間、定義されていません。 – pnsrinivasreddy

+1

これが答えとしてマークされていない理由がわかりません。 –

関連する問題