this post was submitted on 03 Aug 2025
15 points (100.0% liked)

Godot

6937 readers
31 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 2 years ago
MODERATORS
 

I'm using godot-rust bindings to provide some additional functionality to my codebase. I wrote methods associated with a struct that I would like to use in my game and made a few unit tests to ensure that they're working correctly. After godotifying my struct with attributes described in Hello World section of the godot-rust book I got a slew of errors, some of which are about initialization of the struct in test functions. After clearing them all and executing MyClass:new_alloc() at the beginning of a test function the compiler complains that Godot engine is not available. I hit a roadblock because I don't know how to execute tests in Godot environment. Changing #[test] to #[itest] makes the code compile but that's because it executes 0 tests; from what I see itest is meant for developing godot-rust anyway. What is the preferred way of unit testing godot-rust code?

top 1 comments
sorted by: hot top controversial new old
[–] derg@lemmy.world 4 points 19 hours ago* (last edited 14 hours ago)

I've only spent a little bit of time on godot-rust myself, but from what I hear you have to use some sort of third-party library to help out. I've heard gd-rehearse might be what you're looking for, but never got it working myself (though I didn't try very hard).

I've resorted to mostly using gdscript, and in rust just making my structures normal rust structs which I can unit test, just adding thin wrappers which use Gd<T> which call into my standard tested rust code. As long as what you're testing doesn't touch Gd<T> it seems to be testable in the normal way without crashing, using #[test]... but I admit it's not ideal

Edit: there's a godot-rust discord linked from their main docs page which is much more active than this place could be, you might get a better answer there