Menu
CoddyTech

Kiểm thử và tích hợp

Thuộc phần Lập trình hướng đối tượng trong hành trình Dart của Coddy. Bài học 106 trên 110.

challenge icon

Thử thách

Dễ

Trong bài học trước, bạn đã xây dựng giao diện quản trị để quản lý kho sách của thư viện. Bây giờ, đã đến lúc kết hợp mọi thứ bằng cách tạo một bộ test toàn diện để kiểm tra xem tất cả thành phần của Hệ thống quản lý thư viện có hoạt động chính xác cùng nhau hay không.

Bạn sẽ thêm lớp LibraryTester để chạy các bài test tích hợp trên tất cả tính năng của thư viện, kiểm tra xem sách, người dùng, quản trị viên, việc mượn sách, tìm kiếm và quản lý kho sách có hoạt động như mong đợi khi dùng cùng nhau hay không.

  • book.dart, user.dart, admin.dart, library.dart: Giữ nguyên các lớp hiện có.
  • library_tester.dart: Tạo lớp LibraryTester mới để kiểm tra hệ thống thư viện. Lớp này cần có một instance Library và bao gồm các phương thức test sau:
    • setupTestData() - đăng ký một quản trị viên (A001, Test Admin), thêm hai cuốn sách thông qua quản trị viên (978-0-01, Book One, Author A và 978-0-02, Book Two, Author B), rồi đăng ký một người dùng (U001, Test User)
    • testBorrowing() - mượn cuốn sách đầu tiên cho người dùng, thử mượn lại cuốn sách đó (thao tác này sẽ thất bại), rồi trả sách. In ra Borrowing test: PASS sau khi hoàn tất.
    • testSearch() - tìm sách có Book trong tiêu đề, in ra Search found: X books, trong đó X là số lượng, rồi in ra Search test: PASS
    • testAdminOperations() - xóa cuốn sách thứ hai bằng quản trị viên, in số lượng sách theo định dạng Books after removal: X, rồi in ra Admin test: PASS
    • runAllTests() - gọi setupTestData(), sau đó chạy lần lượt cả ba phương thức test, cuối cùng in ra All tests completed!
  • main.dart: Tạo một instance LibraryTester và gọi runAllTests() để chạy toàn bộ bộ test.

Kết quả đầu ra dự kiến:

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!

Tự làm thử

import 'library_tester.dart';

void main() {
  // TODO: Tạo một instance của LibraryTester và gọi runAllTests()
}

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Dart online