Android と CI

もっかい脳内の情報を stash して整理し直すことに。以下、色々控えを列挙してみる。

  • Android SDK に同梱されている JUnit は 3.8 系ベースとのこと
    • JUnit で試験書く場合は Activity に依存しないような工夫が必要
    • たしかにある機能 (ロジック?) から依存関係をなくすことは重要
  • MoreAsserts というクラスがある模様
  • とりあえず Android は ant で build できるようになってないとアレ
  • InstrumentationTestCase とか AndroidTestCase とかって何
  • ActivityUnitTestCase って何
    • メソド単体での実装が正しいことがテストできる?
  • ActivityInstrumentationTestCase2 って何
    • UI 操作を含めたテストを実行するとのこと
  • Robotium
    • ActivityInstrumentationTestCase2 の UI 操作なテストを簡潔に記述できるようにするためのライブラリ、とのこと
    • MVC の結合試験も可能?
    • Activity 間の遷移のテストも可能
  • ServiceTestCase による Service の試験もできる模様
  • LoaderTestCase というもの (Loader 試験用) もある模様
  • mockito (モック伊藤)
    • dexmaker を使うことで mockito が生成するオブジェクトを Dalvik VM 上で実行できるようになった、とのこと
  • UI テストツールの適切な選択
    • 選択の観点
      • 対応が必要な Android のバージョン
      • どういった UI 操作の試験が必要か
      • UI 試験を書くのは誰か
    • ツール
      • Android Testing Framework
      • monkeyrunner
      • uiautomator
      • Robotium
  • Android Testing Framework
    • 一部の UI 操作は行なえない制約がある
      • 何だろ
  • monkeyrunner
    • Python によるスクリプト化が可能らしい
    • 絶対座標指定で UI 操作
  • uiautomator
  • Robotium
    • 豊富なメソドが用意
    • Activity 跨りな試験も記述できる
    • JUnit3 に依存
    • CI への組込みが可能
  • JUnit4
  • Robolectric

うーん、色々な意味で微妙。今、発展途上な要素技術でもあり、諸々を見極めつつ環境を構築していきましょう、というのが最適解なのかどうなのか。