TDD for GUI
兩個(gè)原則:
1)MVP模式:Model - View - Presenter
2) Presenter 優(yōu)先原則
一) MVP模式:
MVP是MVC(Model-View-Controller)的變種。
基本模式:View ←← Presenter →→ Model
事件通知:View →→ Presenter ←← Model
View:GUI界面布局;對(duì)Model和Presenter一無(wú)所知;代碼比較簡(jiǎn)單,不含任何邏輯處理;
Model:進(jìn)行邏輯處理;對(duì)View和Presenter一無(wú)所知;提供狀態(tài)和公共方法;當(dāng)狀態(tài)變化時(shí)觸發(fā)事件;
Presenter:控制用戶處理流程;除了構(gòu)造函數(shù)沒有公共方法,無(wú)狀態(tài);一個(gè)窗體對(duì)對(duì)應(yīng)一個(gè)Presenter;向Model和View訂閱事件,對(duì)于View可應(yīng)用EventFilter來(lái)過濾多余事件。
說(shuō)明: 事件機(jī)制是實(shí)現(xiàn)MVP松耦合的關(guān)鍵。
二)Presenter 優(yōu)先流程:
1. 創(chuàng)建用戶事例;
2. 創(chuàng)建Presenter,利用Model和View的Mock或stub來(lái)實(shí)現(xiàn)用戶事例;
3. 創(chuàng)建Model;
4. 創(chuàng)建View。
TDD流程:
1. 創(chuàng)建 Presenter stub類, 在構(gòu)造器中帶有兩個(gè)參數(shù):Model接口和View接口;
2. 創(chuàng)建Model接口和View接口的Mock 測(cè)試對(duì)象
3. 對(duì)所有用戶事例:
a) 分析用戶事例對(duì)于View的影響,添加View接口支持;
b) 分析用戶事例對(duì)于Model的影響,添加Model接口支持;
c) 對(duì)于新的接口方法添加Mock對(duì)象支持;
d) TDD循環(huán):
i. 寫出一個(gè)對(duì)于Presenter的測(cè)試,通過View或Model的事件或動(dòng)作來(lái)驅(qū)動(dòng)應(yīng)用處理;
ii. 對(duì)于Model的狀態(tài)和View的狀態(tài)進(jìn)行Assertion判定;
iii. 實(shí)現(xiàn)Presenter的私有方法
iv. 測(cè)試通過。
4. 創(chuàng)建一個(gè)最小化的用戶界面實(shí)現(xiàn)。
本文根據(jù)http://download.microsoft.com/download/c/3/d/c3d745d1-c081-4021-aa2c-5839c6ea3380/DVL354.ppt 整理而成。轉(zhuǎn)載請(qǐng)表明原貼地址。 http://m.shnenglu.com/eXile/。
posted on 2009-06-22 13:15 eXile 閱讀(2166) 評(píng)論(0) 編輯 收藏 引用 所屬分類: 編程與設(shè)計(jì)

