Eclipse 中的 JFace 数据绑定,第 3 部分: 使用高级功能(5/19)

 
前一页第 5 页,共 19 页后一页


对本教程的评价

帮助我们改进这些内容


编写可测试的 Presentation Model:测试

要将先前的示例重构为使用 Presentation Model 的示例,第一步是编写测试。为此,需要将 JUnit 支持添加到项目中。在软件包浏览器中单击 META-INF/MANIFEST.MF 文件,以打开 Eclipse MANIFEST.MF 编辑器。然后,单击 Dependencies 选项卡并单击 Required Plug-ins 部分中的 Add 按钮。选择 org.junit 插件,然后单击 OK。现在将显示类似图 3 所示的编辑器。



图 3. 添加 JUnit 支持后的 Manifest.MF 编辑器
添加 JUnit 支持后的 Manifest.MF 编辑器

接下来,创建一个新软件包和一个名为 ContactPresentationModelTest 的新类,该类用于扩展 TestCase。插入清单 2 中所示的测试方法。



清单 2. 用于 Presentation Model 的测试
                    
public void testYearsMarriedEnablement() {
    Contact contact = new Contact();
    ContactPresentationModel presentationModel = new 
    ContactPresentationModel(
            contact);

    assertFalse(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 中的代码。



清单 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 视图
测试失败后的 JUnit 视图

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值