테스트 및 통합
Coddy Dart 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 110개 중 106번째.
챌린지
쉬움이전 레슨에서 여러분은 도서관 인벤토리를 관리하기 위한 관리자 인터페이스를 구축했습니다. 이제 도서관 관리 시스템의 모든 구성 요소가 함께 올바르게 작동하는지 검증하는 포괄적인 테스트 스위트를 만들어 모든 것을 하나로 묶을 시간입니다.
도서, 사용자, 관리자, 대출, 검색 및 인벤토리 관리가 함께 사용될 때 예상대로 작동하는지 확인하는 통합 테스트를 실행하는 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()를 호출하세요
}