20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

2,477 views
2,402 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,477
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
3
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

20140115 potato tips No.3 Android App Test Development Driven and Jenkins CI Start

  1. 1. 【第3回】potatotips (iOS/Android開発Tips共有会)
  2. 2. Fragmentation地獄 資料削除
  3. 3. Androidアプリ開発のつらぽ • 端末のフラグメンテーション • 多数のバージョン • 端末メーカーの(無意味な)独自 カスタマイズ • 異なるCPUアーキテクチャ
  4. 4. わかっていてもできないんだ・・・
  5. 5. TDD Boot Camp / 課題( #tddbc ) • 対象 – 飲み物自動販売機 Ver 2.0 ⇒ポテトチップス自動販売機 • 課題を解くにあたって大事な事 – 課題を全部解くのを目標するのではなく、ワークショップの学習成果を最大化 するように心がけましょう! – TDDは「きれいで動くコード」を目指します。必要に応じて各自独自にリファク タリングを心がけましょう! – 課題の箇条書きはTDDのRED->GREENの1サイクルに対応している訳ではあ りません。やりやすいように仕様を整理・分割して、スモールステップで進め ましょう – オブジェクト・モジュールはこまめに分割しましょう(たとえば自販機、在庫管 理、金銭管理という風に) • 課題 – ステップ0 お金の投入と払い戻し – ステップ1 ポテチの管理 – ステップ2 購入
  6. 6. 200円100円 • 入金できる • 購入できる • おつりが取得できる • ポテチの入庫
  7. 7. 利用予定(?)のテスト関連クラス • AndroidTestCase – クラスの単体テスト • ActivityInstrumentationTestCase2 – Activityを操作するテスト • RenamingDelegatingContext – 疑似Preference DB作成 1. Context mContext = RenamingDelegatingContext(getContext(),”test_”); 2. PreferenceManager.getDefaultSharedPreferences(mContext );
  8. 8. Source Code • Target code – https://github.com/cafedeaqua/PotatotipsVendin gMachine • Project Structure – PotatotipsVendingMachine • PotatotipsVendingMachineTest – In “tests” Folder
  9. 9. Create build.xml • android update project --path ./ --target "android-19" --subprojects • android update test-project --path tests -- main ..
  10. 10. Test execute • ant clean emma debug install • ant -f tests/build.xml clean emma debug install test fetch-test-report
  11. 11. Get coverage • tests¥bin¥coverage.html
  12. 12. ローカルでアプリテストを してよいのは中学生まで
  13. 13. CloudBees Build service http://www.cloudbees.com/ Dev@Cloud
  14. 14. Plan
  15. 15. android-junit-report • libs/android-junit- report-1.5.8.jar • custom_rules.xml • AndroidManifext.xml • ant.properties On Test project
  16. 16. AndroidManifext.xml
  17. 17. custom_rules.xml
  18. 18. ant.properties • test.runner=com.zutubi.android.junitreport.JU nitReportTestRunner
  19. 19. まとめ • テストカバレッジ 100%は無理 – そもそも実現する必要はない • 但し、個人開発アプリほどテスト重要 – 先週の実装は他人の実装 • テストを書き始めるキッカケが重要

×