- Use GUT (Godot Unit Testing) for unit and integration tests — place test files in a `tests/` directory mirroring the `src/` structure.
- Name test methods with the `test_` prefix: `func test_player_takes_damage_reduces_health():` — GUT discovers them automatically.
- Use `assert_eq`, `assert_true`, `assert_null`, and `assert_signal_emitted` assertions rather than bare `assert()` calls.
- Use `before_each` and `after_each` hooks to set up and tear down test scenes — call `gut.add_child(scene_instance)` to test full scene trees.
- Use `double()` and `partial_double()` from GUT to mock nodes and autoloads without modifying production code.
- Test signal emissions with `watch_signals(node)` and `assert_signal_emitted(node, 'signal_name')` to verify event-driven behavior.
- Run the full GUT suite headlessly in CI: `godot --headless -s addons/gut/gut_cmdln.gd -gdir=res://tests/`.