بنقرة واحدة
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.