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}"}

1916

被折叠的 条评论
为什么被折叠?



