ReactNative detox E2E

ReactNative detox E2E:


はじめに

この記事はReact Nativeアドベントカレンダーの8日目の記事です。

今年からReactNatvieがっつり触り始めました

AdventCalendarを投稿するならReactNativeだなと思い投稿しました

ここ最近はテストばっかりやっているのでテストで使っているdetoxをご紹介しようと思います


detoxとは

ReactNativeのE2Eライブラリです

ios/androidの両方に対応しているので使っています

androidは数ヶ月前くらいに対応したのかな?

まぁ普通に使えている


環境

今回は最新Versionで試しに動かしてみます

OS: macOS

XCode: 10.1

ReactNative: 0.57.7

detox: 9.1.2


準備

iosセットアップ手順とか説明してきます

androidは別の機会に


新規プロジェクト作成

$ react-native init detoxSample 


必要なコマンドのインストール

$ brew tap wix/brew 
$ brew install --HEAD applesimutils 
 
$ npm i -g detox-cli 


プロジェクト内に導入

今回はmochaを使用するつもりなのでmocha detoxをインストール

$ npm i --save-dev detox mocha 
下記コマンドを実行すると e2eディレクトリが作成される

$ detox init -r mocha 


package.jsonを少し修正

detoxSampleとなっているところは作成したProjectの名前に置き換えてください

今回はdetoxSampleという名前で行っていますので

iPhone 7となっているところはテストしたいデバイスを指定できます

{ 
  "detox": { 
    "configurations": { 
      "ios.sim.debug": { 
        "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/detoxSample.app", 
        "build": "xcodebuild -project ios/detoxSample.project -scheme detoxSample -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build", 
        "type": "ios.simulator", 
        "name": "iPhone 7" 
      } 
    }, 
    "test-runner": "mocha" 
  } 
} 
 
準備はこれで終了です。

では実行してみましょう

iPhoneシュミレータが起動して何やらテストが実行されると思います

テストは失敗しますがw

$ detox test -c ios.sim.debug 


スクリーンショット 2018-12-08 9.06.05.png



テストを書いてみます

プロジェクトを作成してから変更は何も加えてない状態なはずなので少し付け加えていきます


App.js



スクリーンショット 2018-12-08 9.11.10.png



e2e/firstTest.spec.js

コメントアウトしてtestIDwelcomeが表示されているか確認するテストを実行します


スクリーンショット 2018-12-08 9.13.15.png



テストが通ります

スクリーンショット 2018-12-08 9.15.14.png


もう少し書いてみます

FlatListを追加してテストしてみます


App.js



スクリーンショット 2018-12-08 9.34.19.png



e2e/firstTest.spec.js



スクリーンショット 2018-12-08 9.35.15.png



テストが通ります



スクリーンショット 2018-12-08 9.35.51.png



さらにもう少し書いてみます

テキストをタップしてアラートを表示してみます


App.js



スクリーンショット 2018-12-08 9.41.20.png



e2e/firstTest.spec.js



スクリーンショット 2018-12-08 9.42.56.png



テストが通ります



スクリーンショット 2018-12-08 9.43.34.png



最後にシミュレーターの様子をご覧ください



detox.gif



まとめ

  • detoxはセットアップもさほど難しくないのでいい
  • jestも対応はしているのだけどmochaのほうがいい

    • mochaは失敗したらテストが止まるので
    • jestはテストが失敗してもどこで失敗したのかあとで追うのが大変
  • Xcodeがアップデートするとdetoxが対応していないケースがあるので待つしかないのつらみ

    • まだ対応してないときね
  • detoxを使ってくれる人が増えてくれたらいいなと感じるw


リンク

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)