Menu
CoddyTech

测试与集成

本课属于 Coddy Dart 学习旅程的“面向对象编程”单元。第 106 课,共 110 课。

challenge icon

挑战

简单

在上一课中,你构建了一个用于管理图书馆馆藏的管理员界面。现在,你需要创建一套全面的测试,验证图书管理系统的所有组件能否正确协同工作。

你将添加一个 LibraryTester 类,用于运行涵盖所有图书馆功能的集成测试,验证图书、用户、管理员、借阅、搜索和馆藏管理功能能否按预期协同工作。

  • book.dart、user.dart、admin.dart、library.dart:保留现有类,不做修改。
  • library_tester.dart:创建一个新的 LibraryTester 类,用于验证图书馆系统。该类应包含一个 Library 实例,以及以下测试方法:
    • setupTestData():注册一个管理员(A001、Test Admin),通过该管理员添加两本书(978-0-01、Book One、Author A,以及 978-0-02、Book Two、Author B),并注册一个用户(U001、Test User)
    • testBorrowing():为用户借出第一本书,再尝试借一次(应该失败),然后归还图书。完成后打印 Borrowing test: PASS。
    • testSearch():搜索标题中包含 Book 的图书,打印 Search found: X books,其中 X 是数量,然后打印 Search test: PASS
    • testAdminOperations():通过管理员移除第二本书,打印图书数量 Books after removal: X,然后打印 Admin test: PASS
    • runAllTests():调用 setupTestData(),然后按顺序运行全部三个测试方法,最后打印 All tests completed!
  • main.dart:创建一个 LibraryTester 实例,并调用 runAllTests() 来运行完整的测试套件。

预期输出:

A001 added "Book One"
A001 added "Book Two"
U001 borrowed "Book One"
Book not available
U001 returned "Book One"
Borrowing test: PASS
Search found: 2 books
Search test: PASS
A001 removed "Book Two"
Books after removal: 1
Admin test: PASS
All tests completed!

亲手试试

import 'library_tester.dart';

void main() {
  // TODO: 创建一个 LibraryTester 实例,并调用 runAllTests()
}

面向对象编程中的所有课

自己练习: Dart 在线编译器