Claude-skill-registry gdUnit4 Test Writer

Write gdUnit4 test code with type-specific assertions, signal testing, and scene runner support. Use when creating or updating tests for GDScript files.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gdunit4-test-writer" ~/.claude/skills/majiayu000-claude-skill-registry-gdunit4-test-writer && rm -rf "$T"
manifest: skills/data/gdunit4-test-writer/SKILL.md
source content

gdUnit4 Test Writer

Write gdUnit4 test code for GDScript files with proper assertions and test structure.

Workflow

  1. Analyze target file - Read the GDScript file to understand what needs testing
  2. Check gdUnit4 docs - Use Context7 (
    /websites/godot-gdunit-labs_github_io_gdunit4
    ) if needed
  3. Select assertions - Use type-specific assertions (see [references/assertions.md])
  4. Create test file - Place in
    res://tests/
    directory with
    test_*.gd
    naming (e.g.,
    test_player.gd
    )
  5. Validate - Use gdscript-validate skill to check for errors

Quick Reference

Test File Template

extends GdUnitTestSuite

func test_example() -> void:
    assert_int(1).is_equal(1)

Common Assertions

  • int:
    assert_int(value).is_equal(10)
  • float:
    assert_float(value).is_equal_approx(3.14, 0.01)
  • String:
    assert_str(text).contains("hello")
  • Array:
    assert_array(items).has_size(5)
  • Object:
    assert_object(node).is_not_null()
  • Signal:
    await assert_signal(emitter).is_emitted("signal_name")

Memory Management

func test_with_node() -> void:
    var node: Node = auto_free(Node.new())  # Auto-freed after test
    assert_object(node).is_not_null()

References

Context7 Library ID

For detailed gdUnit4 documentation:

  • Library ID:
    /websites/godot-gdunit-labs_github_io_gdunit4