Groovy编程实践与案例解析

47、需要为LibraryTest类开发一个新的测试方法,测试向一个空的图书馆注册两个具有不同会员编号的借阅者后,图书馆中会有两个借阅者。

以下是实现该测试方法的示例代码:

// class LibraryTest
/**
 * 测试向一个空的图书馆注册两个具有不同会员编号的借阅者会使图书馆中有两个借阅者
 */
void testRegisterTwoBorrowers() {
    def lib = new Library() // 假设存在Library类的构造函数
    def bor1 = new Borrower(membershipNumber: '1234', name: 'Jessie')
    def bor2 = new Borrower(membershipNumber: '5678', name: 'Tom')
    def pre = lib.borrowers.size()
    lib.registerBorrower(bor1)
    lib.registerBorrower(bor2)
    def post = lib.borrowers.size()
    assertTrue('borrower数量不符合预期', post == pre + 2)
}

48、你需要开发一个LibraryTest类的三个新测试方法,其中一个测试方法用于测试向一个已有借阅者的图书馆注册一个具有相同会员编号的借阅者时,图书馆中借阅者的数量不会发生变化。

以下是实现该测试方法的示例代码:

// class LibraryTest
// ...
/**
 * Test that an attempt to register a Borrower with the same membership number
 * as one already in the Library results in no change to the number of Borrowers
 * in the Library
 */
void testRegisterSameMembershipBorrower() {
    // 假设lib是Library对象,bor1是已有的借阅者
    def pre = lib.borrowers.size()
    def bor2 = new Borrower(membershipNumber : '1234', name : 'Another Name') // 与bor1会员编号相同
    lib.registerBorrower(bor2)
    def post = lib.borrowers.size()
    assertTrue('the number of borrowers should not change', post == pre)
}
// ...

49、重复第一个练习,但这次使用 SQL 选择语句来检索所需的账户。由于不清楚第一个练习的具体内容,假设要检索账户表中余额超过 1000 的账户。

可使用类似 SELECT * FROM accounts WHERE balance > 1000 的 SQL 语句来检索余额超过 1000 的账户,在 Groovy 代码中结合 Sql 对象执行该语句,示例代码如下:

import groovy.sql.*
def DB='jdbc:derby:accountDB'
def USER=''
def PASSWORD=''
def DRIVER='org.apache.derby.jdbc.EmbeddedDriver'
def sql = Sql.newInstance(DB, USER, PASSWORD, DRIVER)
def result = sql.rows('SELECT * FROM accounts WHERE balance > 1000')
result.each { row -> println "Account: ${row.number} ${row.balance}"}

50、时不时会有借阅者离开图书馆。因此,我们的软件必须支持注销功能。为图书馆类引入一个方法:removeBorrower(membershipNumber),用于从图书馆中移除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值