Save 37% off PRO during our Black Friday Sale! »

ノハナ ノ テスト ノ ハナシ

ノハナ ノ テスト ノ ハナシ

2017/5/10
Android Testing Bootcamp #6

Ad449f3f4e595ade283a30c4f66010be?s=128

HiroYUKI Seto

May 10, 2017
Tweet

Transcript

  1. ノハナ ノ テスト ノ ハナシ Android Testing Bootcamp #6 株式会社ノハナ

    瀬戸優之 @seto_hi
  2. None
  3. 自己紹介 • 瀬戸優之 せとひろゆき @seto_hi • 株式会社ノハナ ◦ 唯一のAndroidエンジニア ◦

    UIデザインもやる、施策も考える、なんでもやる ◦ 絶賛採用中 • 好きなAPIはCanvas#saveとViewGroup#layout
  4. ノハナのテスト事情 • 100% Kotlin! • Unit test >>> Instrumented Test

    ◦ Unit testはenumが中心 ◦ Instrumented Test は古いテストが多め • CIはTravisを利用 • UIテストなし ◦ QAで保証
  5. ノハナのテスト環境(3月) • PR投げるとTravis CIがまわる ◦ Instrumented Test + Unit test

    ◦ 1回15〜20分 • テストが通らないとPRをマージしない厳密なルール ◦ 毎回PRが20分待ち.. • 遅すぎる • Instrumented Test 遅すぎる
  6. Travis Cron Jobs • Beta Feature • 特定ブランチのスクリプトを定期実行してくれる ◦ 毎日、毎週、毎月の3パターン

    • PRと別のコマンドを実行できる
  7. Travis Cron Jobs

  8. ノハナのテスト環境(4月) • PR投げるとTravis CIがまわる ◦ Unit testのみ ◦ 1回5分 •

    Travis Cron Jobsで毎日Instrumented Testが走る ◦ 1回18〜22分 • 待ち時間大幅削減
  9. None
  10. Robolectric Custom Shadow

  11. Robolectric Custom Shadow • Shadow = 実行時のクラス差し替え • staticメソッドでもmockできる •

    Custom Shadowの作り方が簡単になっていた • http://robolectric.org/custom-shadows/
  12. Robolectric Custom Shadow 作り方 1. @implements{Hoge.class}をつけたクラスを作る

  13. Robolectric Custom Shadow 作り方 2. @Implementationをつけたメソッドを作る

  14. Robolectric Custom Shadow 作り方 3. テストクラスに@Config(shadows={ShadowHoge.class}) をつける

  15. None
  16. まとめ • テストの重み付けをしよう ◦ 軽いテスト、重要なテストは毎回実行 ◦ 重いテスト、重要でないテストは定期実行 ▪ Travis Cron

    Jobs便利 • RobolectricのCustom Shadowはサクッと作れる ◦ staticメソッドもmockできる