However I ran into issues when trying to use established C# Unit Testing Frameworks like x or n Unit. I don't understand the absolute specifics but the gist is that these established systems don't work well (if at all sometimes) with Godot's Managed API.
So being the dev that works far too much on their own tools instead of their game, I ended up adding a C# Wrapper around WAT (My GDScript Unit Testing Plugin).
Add "addons/WAT" from the Github to your addons folder
Include the following files in your csproj file
You still inherit from WAT.Test
Use the [Test] Attribute instead of prefixing your method names with test
Use public override String Title() instead of func title()
Use public override Start() instead of func start()
Use public override Pre() instead of func pre()
Use public override Post() instead of func post()
Use public override End() instead of func end()
Use Describe() instead of describe()
Assertions are PascalCase (Check addons/WAT/core/assertions/Assertions.cs if you're stuck)
Use await ToSignal(until_timeout/signal) to use Yield Methods
Use the [RunWith(args)] Attribute for parameterized tests (and pass them via the call)
PoolArray Assertions were removed
TestSuiteOfSuites doesn't exist (yet)
Test Doubles don't exist in C# (I'm not as familler with C# enough to do this properly)
You can find examples of tests in WAT-Sharp's own test suite at https://github.com/CodeDarigan/WATSharp/tree/master/tests which should hopefully help clear up any confusion.