Been using GUT (Godot Unit Test) for about a year. Honest answer: yes, but only for the things that actually deserve it. Damage formulas, buff stacking, inventory math, save data serialization. Pure functions with well-defined inputs and outputs. Easy to test, has caught real regressions more than once.
Where it falls apart is anything that needs a live scene tree. Testing a state machine coupled to an AnimationPlayer is annoying enough that I usually just don't. The real fix is pushing that logic out of nodes into plain RefCounted classes that don't extend Node, then testing those directly, but that requires the discipline to design it that way from the start, which I don't always have when I'm moving fast.
The rule I've landed on: write tests for anything with a formula or a data contract. Skip tests for anything fundamentally about node lifecycle or rendered output. And write at least one smoke test that boots a stripped-down scene and runs a critical player flow, not for coverage, just to catch "crashes on startup" regressions before they reach anyone else.




