More or less compared to … ?
It’s a yes and no. It depends on what you’re developing.
I find the notion of writing unit tests for a game-specific player controller absurd, unless the controller is either extremely complex or intended to be generic and reusable.
I don’t do gameplay-code testing for the most part, it’s just too damn hard and time consuming with often very little benefit because that code keeps changing due to design requirements and because it’s often okay to have that code heavily dependent (and game-specific) and thus not very testable.
I hardly do tests of MonoBehaviour classes, instead when there’s something that needs testing it’s a regular C# class that a MonoBehaviour instantiates and uses.
If you write your own collection class, like an Inventory or a streaming chunk system or RPG stats and damage calculations, then that ought to be under unit tests. There are design rules that would otherwise be hard to spot, like a fire magic immunity that stops working when you add an ice magic immunity or when combat damage calculations incorrectly factor in armor and thus damage gets increasingly unbalanced the higher the level.
Code automatically becomes less intertwined, more reusable. It’s also allowing you to make large changes with the safety net of confirming that everything still works.
This “ease of mind” is a biggy!
I have never really used DI except for exploring the concept. But the often very awkward, non-relatable API these injection frameworks use makes the whole code so ugly I’d really rather not use them. On top, I have yet to see the benefit. I don’t want references “magically appear” in my code. I want to have that GetComponent etc line in my code. It forces me to think where these references are coming from and whether I really need to have them there or whether there are more efficient ways to structure the prefab/scene.
It’s also super easy to avoid DI by merely having a “reference provider” component on an object.
As for testing I’ve also hadn’t had to test a class that had to rely on injected references. I just never ran into this problem. Perhaps because I find most value in unit testing in the areas where the testable class stands by itself, like a collection.