快速业务通道

了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
ssertFalse(presentationModel.getEnableYearsMarried());    presentationModel.getContact().setName("Name");    assertFalse(presentationModel.getEnableYearsMarried());    presentationModel.getContact().setSpouse("Spouse");    assertTrue(presentationModel.getEnableYearsMarried());    presentationModel.getContact().setYearsMarried("5");    presentationModel.getContact().setSpouse("");    assertFalse(presentationModel.getEnableYearsMarried());    assertNull(presentationModel.getContact().getYearsMarried()); }

这段代码不能编译,因为还没有引用的 Presentation Model。在同一个软件包中创建一个名为 ContactPresentationModel 的新类。粘贴清单 3 中的代码。

了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能(4)

时间:2011-02-11 IBM Scott Delap

清单 3. 简短的 Presentation Model 代码

private Contact contact; private boolean enableYearsMarried; public ContactPresentationModel(Contact contact) {   this.contact = contact; } public Contact getContact() {   return contact; } public void setContact(Contact contact) {   this.contact = contact; } public boolean getEnableYearsMarried() {   return this.enableYearsMarried; }

至此,系统将可编译先前创建的测试。在软件包浏览器中的类上单击鼠标右键,然后从弹出式菜单中选择 Run As > JUnit Test。JUnit 视图应当显示测试失败,如图 4 所示。

图 4. 测试失败后的 JUnit 视图

我们来看看清单 2 用了什么测试方法。前几行设置了一个新的 ContactPresentationModel 并用一个新的 Contact 对象来填充它。由于此对象没有名称或配偶的值,因此此对象在其 enableYearsMarried 变量(通过 getEnableYearMarried() getter 方法来访问)中保存的状态在初始化时应当是 false。然后测试设定了名称属性并断言启用的状态仍是 false。在填充配偶属性后应当会改变启用状态,这段代码中写了一条断言来测试这个条件。然后 yearsMarried 属性被设定,并清空 spouse 属性。清空 spouse 属性应当会导致启用状态转换为 false 并清空 yearsMarried 属性。结果,最后两条断言检查情况是不是这样。

编写可测试的 Presentation Model:业务逻辑

现在已经有了针对 ContactPresentationModel 期望的业务逻辑的完整测试,可以开始实现功能了。

首先,十分有必要查看一个简短类。该类包含两个属性:contact 和 enableYearsMarried。Contact 对象引用已公开,因此其他类可以根据需要通过 Presentation Model 来访问该对象。将 enableYearsMarried 属性而不是 Contact 对象添加到 Presentation Model 中,因为更改对象的状态和业务逻辑都是绑定到 Contact 编辑操作而不是对象本身。

现在可以修改 ContactPresentationModel 来实现测试中指定的约定。在 Eclipse Java 编辑器中打开类。需要的第一处更改是实现对 enableYearsMarried 属性的属性更改支持,以供将来与 JFace 数据绑定结合使用。这个更改可以通过将其 setter 更改为匹配清单 4 中所示的代码来完成。

清单 4. 支持属性更改的启用状态 setter

public void setEnableYearsMarried(boolean enableYearsMarried) {   boolean oldVal = this.enableYearsMarried;   this.enableYearsMarried = enableYearsMarried;   firePropertyChange("enableYearsMarried", \   oldVal, this.enableYearsMarried); }

了解Eclipse中的JFace数据绑定,第3部

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号