Menu
Coddy logo textTech

テストと統合

CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 106/110。

challenge icon

チャレンジ

簡単

前回のレッスンでは、ライブラリの在庫を管理するための管理者インターフェースを構築しました。今回は、ライブラリ管理システムのすべてのコンポーネントが正しく連携して動作することを検証する包括的なテストスイートを作成し、すべてを統合します。

すべてのライブラリ機能(書籍、ユーザー、管理者、貸出、検索、在庫管理)が、組み合わせて使用されたときに期待通りに機能することを確認する統合テストを実行する LibraryTester クラスを追加します。

  • book.dart, user.dart, admin.dart, library.dart: 既存のクラスは変更せずにそのまま保持してください。
  • library_tester.dart: ライブラリシステムを検証する新しい LibraryTester クラスを作成します。このクラスは Library インスタンスを持ち、以下のテストメソッドを含める必要があります。
    • setupTestData() - 管理者 (A001, Test Admin) を登録し、管理者経由で2冊の書籍 (978-0-01, Book One, Author A978-0-02, Book Two, Author B) を追加し、ユーザー (U001, Test User) を登録します。
    • testBorrowing() - ユーザーのために1冊目の書籍を借り、再度借りようと試み(失敗するはずです)、その後返却します。完了後に Borrowing test: PASS と出力してください。
    • testSearch() - タイトルに Book を含む書籍を検索し、Search found: X books (Xは件数) と出力し、次に Search test: PASS と出力します。
    • testAdminOperations() - 管理者を使用して2冊目の書籍を削除し、書籍数を Books after removal: X として出力し、次に Admin test: PASS と出力します。
    • runAllTests() - setupTestData() を呼び出し、次に3つのテストメソッドを順番に実行し、最後に 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()を呼び出す
}

オブジェクト指向プログラミングのすべてのレッスン