基于MVP应用框架的GUI测试

作者: 佚名

原文链接:http://googletesting.blogspot.tw/2009/02/with-all-sport-drug-scandals-of-late.html

由于最近的运动药物丑闻,近来已经很难找到一个好角色模型了。然而,当你的角色模型是一个领域模型(业务实体对象模型)时,你无需使用Model-View-Presenter来伪装成基于MVP应用框架。

MVP和MVC(模型-视图-控制器)很相似。如下图所示,在MVC表示层逻辑被控制器和视图共享。该视图通常是直接从可见的GUI框架组件派生,以模型观察和视觉呈现给用户。该控制器负责决定如何将用户事件转化为模型的更新。在MVP中,表示层逻辑被一个监督控制器完全控制,也可以被称为是表示层(监控器)。MVC            MVP


视图变得被动,委托给表示层。

public CongressionalHearingView() {

      testimonyWidget.addModifyListener(

             new ModifyListener() {

                    public void modifyText(ModifyEvent e) {

                           presenter.onModifyTestimony();//presenter decides action to take

                    }

             }

      );

}

表示层从模型中获取数据并更新视图。

public class CongressionalHearingPresenter {

      public voidonModifyTestimony() {

             model.parseTestimony(view.getTestimonyText());// manipulate model

      }

      public voidsetWitness(Witness w) {

             view.setTestimonyText(w.getTestimony());// update view

      }

}

职责分离可以允许更多的模块化代码,还能使Present和View简单地单元测试

public void testSetWitness() {

      spyView = newSpyCongressionalHearingView();

      presenter = newCongressionalHearingPresenter(spyView);

      presenter.setWitness(newWitness("Mark McGwire", "I didn't do it"));

      assertEquals(" Ididn't do it", spyView.getTestimonyText());

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值