원클릭으로
user-interaction-testing
User Interaction Testing Skill
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
User Interaction Testing Skill
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Unity ScriptableObject Architecture
Unity Shaders
Unity State Machines
Registers new C# files in resources/manifests/<system>.json (files array + tests.editmode/playmode list) and validates with just validate-registry. Use when creating any new script, adding a new game system, or fixing 'orphan file' CI failures. Trigger phrases: 'add to manifest', 'register file', 'new system', 'validate registry'. Key capabilities: exact JSON manifest format, ACTIVE/DEPRECATED/EXPERIMENTAL status, dependency declarations, test class name mapping for pre-push gating via resolve_module_tests.py. Do NOT use for modifying physics logic or editing game scripts unrelated to registration.
Unity Terrain & Track Creation for RC Racing
Unity Testing, Debugging & QA
| name | user-interaction-testing |
| description | User Interaction Testing Skill |
Use this skill when writing automated tests that simulate user-facing interactions such as input handling, menu navigation, button clicks, and full user journeys.
Unit tests verify that individual functions return correct values. Interaction tests verify that the user can actually accomplish tasks through the UI. A system where every function passes unit tests can still be unusable if:
During user flow tests, external systems should be mocked to keep tests fast, deterministic, and isolated.
| System | Why Mock | Mock Strategy |
|---|---|---|
| Network | Tests shouldn't depend on connectivity | Return canned responses for API calls |
| File I/O | Tests shouldn't write to real save files | Use in-memory storage or temp directory |
| Platform services | Steam, console APIs may not be available in CI | Stub that records calls without executing |
| Audio | Headless CI has no audio device | Null audio backend or silent stubs |
| Time | Tests need deterministic timing | Injectable clock that can be advanced manually |
Mock at the boundary between your code and the external system, not deep inside your code:
# Good: mock the service interface
var mock_save_service = MockSaveService.new()
settings_manager.save_service = mock_save_service
# Bad: mock individual file operations inside the save code
# This couples your test to implementation details
| Helper | Purpose |
|---|---|
InputInjector | Inject actions, keys, mouse events with automatic cleanup |
MenuNavigator | Navigate to any screen by name via shortest path |
ScreenAssertions | Assert screen presence, focused element, visible controls |
JourneyRunner | Execute a sequence of steps with assertions between each |
MockServiceProvider | Swap real services for mocks before test, restore after |
Each test must start from a known state and leave no side effects:
If a test fails mid-journey, the teardown must still run to avoid corrupting subsequent tests.