eXile 的专栏

TDD for GUI

 

两个原则:
     1)MVP模式:Model - View - Presenter 
     2)  Presenter 优先原则

一)  MVP模式

MVP是MVC(Model-View-Controller)的变种。

      基本模式:View ←← Presenter →→ Model

      事件通知:View →→ Presenter ←← Model

     View:GUI界面布局;对Model和Presenter一无所知;代码比较简单,不含任何逻辑处理;

     Model:进行逻辑处理;对View和Presenter一无所知;提供状态和公共方法;当状态变化时触发事件;

     Presenter:控制用户处理流程;除了构造函数没有公共方法,无状态;一个窗体对对应一个Presenter;向Model和View订阅事件,对于View可应用EventFilter来过滤多余事件。

说明: 事件机制是实现MVP松耦合的关键。


二)Presenter 优先流程

 1. 创建用户事例;

 2. 创建Presenter,利用Model和View的Mock或stub来实现用户事例;

 3. 创建Model;

 4. 创建View。

 

TDD流程:

1.  创建 Presenter stub类, 在构造器中带有两个参数:Model接口和View接口;

2.  创建Model接口和View接口的Mock 测试对象

3.  对所有用户事例:

     a) 分析用户事例对于View的影响,添加View接口支持;

     b) 分析用户事例对于Model的影响,添加Model接口支持;

    c)  对于新的接口方法添加Mock对象支持;

    d)  TDD循环:

                      i. 写出一个对于Presenter的测试,通过View或Model的事件或动作来驱动应用处理;

                      ii. 对于Model的状态和View的状态进行Assertion判定;

                     iii. 实现Presenter的私有方法

                     iv. 测试通过。

4.      创建一个最小化的用户界面实现。

 

本文根据http://download.microsoft.com/download/c/3/d/c3d745d1-c081-4021-aa2c-5839c6ea3380/DVL354.ppt 整理而成。转载请表明原贴地址。 http://www.cppblog.com/eXile/

 

posted on 2009-06-22 13:15 eXile 阅读(2100) 评论(0)  编辑 收藏 引用 所属分类: 编程与设计


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2009年11月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

常用链接

留言簿(18)

随笔分类

随笔档案

服务器编程

搜索

最新评论

阅读排行榜

评论排行榜