私は、ネイティブアプリケーションに対応するテストについての私の研究を行いました。
現在のところ、ReactNativeは、実デバイスでの統合(UIではなく)テストを実行できるプラットフォームに依存しないテストフレームワークを提供していません。実際にはRCTTestRunnerがありますが、機能は限られており、iOSデバイスでのみ機能します。
機能テスト
複数の機能テストフレームワークがあります。これらのテストは、主にUIコンポーネントに依存し、ユーザー対話のブラックボックステストに使用されます。そのために使用できる成熟クロスプラットフォームフレームワークは、CalabashとAppiumです。 Appiumは、両方のプラットフォーム用の単一のツールであるため、優れたソリューションと思われます(カラバッシュは実際にiOSとAndroidの2つのプロジェクトに設定されています)。また、Appabiumは、CalabashがRubyのみをサポートしている場合、複数の言語(JavaScript、Python、Javaなど)をサポートしています。
有望に見えるが、React ref生成関数をハックで使用し、アプリケーションコードに複数の変更が必要なプロジェクトもある。Cavy
しかし、そのすべてはUIテストのみを目的としています。
Workaroud溶液
Iは(UIの変化に影響されることなく)アプリケーションのロジックをテストするために使用される溶液は以下の通りです。私は主なUIコンポーネントをテスト1に置き換えた特別なバージョンのアプリケーションを(新しいターゲットを作成して)作成しました。そのテストコンポーネントは、アプリケーションの上部で実行されます。テストを起動してログを表示するだけです。これらのログは、機能テストフレームワークによって読み取られ、解析され、レポートが生成されます。