Skip to content

テスト

このリポジトリでは、SwiftPM(swift test)を中心にテストレイヤーを分けます。

  • 対象: 純粋ロジック(副作用なし、OS依存最小)
  • 実装場所: apps/macos/Tests/ThumbThingsCoreTests/
  • 実行: just test-unit
  • 対象: Keychain / URLSession / AppState など、OS依存や副作用のある境界
  • 実装場所: apps/macos/Tests/ThumbThingsIntegrationTests/
  • 実行: just test-integration
  • 注意: Keychainを触るテストは将来的に「抽象化 + in-memory store」で副作用を減らすのが望ましい
  • 対象: View(SwiftUI/AppKit)のレンダリングスモーク、軽いレイアウト検証
  • 実装場所: apps/macos/Tests/ThumbThingsComponentTests/
  • 実行: just test-component
  • 注意: headless環境でフレークしやすいので opt-in にしている
  • 対象: 実アプリ起動、UI自動化、権限フローを含む実機相当検証
  • 実装方針: Xcode の UI Testing(XCUITest)を採用(配布用 .app/Xcode project 導入後)
  • 実行: just test-e2e(現状はスキャフォールド)
  • just test-unit
  • just test-integration
  • just test-component
  • just test-macos(= unit)
  • just test-component は内部で THUMBTHINGS_RUN_COMPONENT_TESTS=1 を付けて実行する
  • swift test --filter '^ThumbThingsComponentTests\\.' を直接叩く場合は THUMBTHINGS_RUN_COMPONENT_TESTS=1 が必要