测试与集成
本课属于 Coddy Dart 学习旅程的“面向对象编程”单元。第 106 课,共 110 课。
挑战
简单在上一课中,你构建了一个用于管理图书馆馆藏的管理员界面。现在,你需要创建一套全面的测试,验证图书管理系统的所有组件能否正确协同工作。
你将添加一个 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: PASStestAdminOperations():通过管理员移除第二本书,打印图书数量Books after removal: X,然后打印Admin test: PASSrunAllTests():调用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 在线编译器