1
/
5

[Flutter] integration testで発生しがちなつまづきと解決方法【株式会社ライトコード】

はじめに

以前、以下の記事でflutter integration testの導入について紹介しました。

[Flutter] integration test でiOS/Androidアプリのテストを自動化!(導入編)

あれからMagicPodがついにFlutter対応したり…ということもありましたが、手元で手軽にテストができるFlutter integration testの魅力もあります!

(MagicPodは、MagicPodクラウドのシュミレータで動くアプリファイルを出力しないといけないですし…)

手軽とはいえどE2Eテスト、安定して動くように構築するには様々な課題があります。

性質上、不具合の原因を追いかけるのも、事前知識がないと難しいことも多々あり…自分が遭遇し

Flutter integration testで発生しがちな問題と、その原因、解決方法をまとめていきます。

Flutter integration Testにおけるデメリットとも言えますので、導入前の参考にもどうぞ!


よくある不具合

■expectに失敗している訳でもないのに、急にテストが失敗することがある

原因:Flutterアプリ本体からExceptionが出ているかも

Flutter Integration TestがExceptionをcatchすると、すべて「テストの失敗」として処理されてテストが終了します。ですので、アプリ本体側で些細なExceptionが出ているのを放置していると、テストドライバ側がそれを拾ってしまっている可能性があります。

解決方法:アプリ本体側でちゃんとExceptionの処理をする

もしくは、テストドライバが拾う前にどこかで処理をする仕組みを作ると、テストの安定性自体は増します。

■アプリに行った操作が、テスト開始後に反映されていない

原因:テストシナリオ内で操作行われていない

テストの安定性を担保するため、テストシナリオ(testWidgets単位)ごとに毎回アプリはアンインストール、再ビルドされます。そのため、アプリインストール処理(pumpWidget)の前に行ったアプリの変更はすべて初期化されます。

解決方法:シナリオごとに初期設定を行うようにする

■flutter test でまとめてテストを行った際、2つめ以降が失敗する

原因:必要な初期設定が、ひとつめのテストシナリオ内でのみ行われている

flutter test <folder>コマンドでは、フォルダ内のテストをまとめて実行できたりと便利ではありますが、処理上、テストシナリオごとにアプリが完全に初期化されます。ひとつめのテストを行ったあと、その状態を引き継いで次のテストシナリオを行うことはできません。

解決方法:シナリオごとに初期設定を行うようにする

■アプリ内で表示された通知、位置情報などの使用許可のモーダルを操作できない

記事の続きは下のURLをクリック!

https://rightcode.co.jp/blogs/48717



エンジニア積極採用中です!

現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!

採用ページはこちら:https://rightcode.co.jp/recruit

社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life

社長と一杯飲みながらお話しませんか?(転職者向け)

特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk

もっとワクワクしたいあなたへ

現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!

ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。

有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。

  • もっと大きなことに挑戦したい!
  • エンジニアとしてもっと成長したい!
  • モダンな技術に触れたい!

現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?

ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。

  • ライトコードの魅力を知っていただきたい!
  • 社風や文化なども知っていただきたい!
  • 技術に対して熱意のある方に入社していただきたい!

一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。

【コーポレートサイト】https://rightcode.co.jp/

【採用募集】https://rightcode.co.jp/recruit(こちらからの応募がスムーズ)

【wantedlyぺージ】https://www.wantedly.com/companies/rightcode

Invitation from 株式会社ライトコード
If this story triggered your interest, have a chat with the team?
株式会社ライトコード's job postings

Weekly ranking

Show other rankings
Like Hiroyuki Choshi's Story
Let Hiroyuki Choshi's company know you're interested in their content