关键字 :Jenkins、Gradle、Jacoco、Android Studio、JUnit 和 Robolectri(只适用Android API Level 16、 17、18)
预构
- 故事点(Agile - Scrum):用户可拉下通知框以查看实时股票信息
- 界面草图(见下图)
- 软件设计模式 :观察者模式(Notification 为观察者,数据更新服务为目标,可能有多个不同类型观察者,考虑引进中介者模式以减轻服务管理依赖负担)
- 类:NotificationStockQuote,接口 -> IObserverNotificationStockQuote,数据结构 -> 二维数组(界面布局采取Listview)
项目概览
项目 build.gradle
|
|
app. build.gradle
|
|
目录结构
|
|
TDD 示范程序
|
|
示范测试
E:\android_workspaces\TDDStockeye>d:gradle-2.1\bin\gradle test
:app:preBuild
:app:preDebugBuild
:app:checkDebugManifest
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:compileTestDebugJava
:app:processTestDebugResources UP-TO-DATE
:app:testDebugClasses
:app:testDebug
:app:testBUILD SUCCESSFUL
Total time: 11.647 secs
测试结果:file:///E:/android_workspaces/TDDStockeye/app/build/test-report/debug/index.html


NotificationStockQuote TDD
NotificationStockQuote 测试计划
- 单例类 (代号:Annn,实际中不必这么繁琐!)
- 初始化(代号:Bnnn,获取 NOTIFICATION_SERVICE,)
- To do…
第01次(A001):测试默认构造器为私有,【注:TDD 快速测试示范意义】
|
|
- 结果预期:失败;NotificationStockQuote 类默认构造器可以在外部被调用。

第02次(A002):测试默认构造器为私有,并且构造生成的对象为单例对象
|
|
- file:///E:/android_workspaces/TDDStockeye/app/build/test-report/debug/index.html
- 结果预期:失败;NotificationStockQuote 类默认构造器私有,但返回的对象不是单例。

第03次(A003):测试默认构造器为私有,并且构造生成的对象为单例对象
|
|
- 结果预期:成功;NotificationStockQuote 类默认构造器私有,返回的对象是单例。
第04次(B001):测试 NotificationStockQuote 完成对 Notification 服务管理对象的初始化
|
|
- 结果预期:失败;NotificationStockQuote 对象并没有完成对 Notification 服务管理对象的初始化。

第05次(B002):测试 NotificationStockQuote 完成对 Notification 对象的初始化
|
|
- 结果预期:成功;NotificationStockQuote 对象完成对 Notification 服务的初始化。【注:不是很严格的测试】