2016-08-25 32 views
0

私は自分のアプリでユニットテスト機能を実装する方法を探していますが、リソースが限られています。ReactNativeアプリでユニットテスト機能を追加するためのステップガイドを提供するドキュメントがありますか?ユニットテストReactNative with Jest

私は反応ネイティブと反応/アドオンをインポートする必要があると言うので、ほとんどのドキュメントは古くなっていますが、これは現在利用できません。

は今

答えて

2

私はreact-nativeでテスト環境をセットアップする公式冗談docsをたどる....リアクトには追加アドオンファイルはありません。

Redux/reducerのテストと違いはありません。コンポーネントについては、新しいsnapshotsテスト方法を使用することができます。これはreact-nativeと互換性があります。あなたはJestレポの小さな例を見ることができます:https://github.com/facebook/jest/tree/master/examples/react-native

+0

Nergeのおかげで、私は__tests__ディレクトリ内のクラスのスナップショットを作成しても年クラスのスナップショットすることができます年のクラスが変更されたときに変更する必要がありますしかし、あなたは、いくつかの機能をテストしたいとどのような場合あなたのクラスが、小道具でレンダリングしている別のクラスを呼び出して、その特定のクラスにUIを作成する場合。 –

+0

私はあなたがしようとしているテストで質問を作成する必要があると思う(最初にやってみてください)、問題にコードを投稿してください。 –

1

これはしばらく前のことですが、React Nativeの単体テストでは素晴らしい文書ではありませんが、ここではコンポーネントのメソッドに関するテストを扱います。おそらくこれはほとんどの場合です。ここで

は冗談で、典型的な例です:

it('handles onInputTextChanged',() => { 
    const wrapper = shallow(<TuraltChat isAnimated={false} />); 
    wrapper.instance().onInputTextChanged("The message has changed"); 
    expect(wrapper.state("text")).toBe("The message has changed"); 
}); 

instance()方法は、基礎となるコンポーネントを公開し、あなたはその後、通常の方法で、その上のメソッドを呼び出すことができます。

すべてのDOM依存関係に迷惑をかけていますが、コンポーネントレベルのテストにも役立つ酵素も使用しています。これは、すべてのネストされたコンポーネントについて心配する必要がないためです。年の返信用

import { shallow } from 'enzyme'; 
import toJson from 'enzyme-to-json'; 

... 

it('renders initially',() => { 
    const wrapper = shallow(<Composer />); 
    const json = toJson(wrapper); 
    expect(json).toMatchSnapshot(); 
}); 
関連する問題