On Unity, it seems that most of the "example" code, tutorials, and documentation, encourage the use of Singletons. I don't want to debate if it's good or bad, I just want solutions to a few things, so I'm going straight to the point: 1. How can I unit test my code with all these Singletons? Specifically, mocking Singletons such as NetworkManager (I really don't want to rely on network to test parts of my code when I run the build pipeline). 2. Have you ever used Zenject? What's your experience with it? Does it hurt performance, readability? How long does it take for them to update the lib to latest/beta version in case if it ever breaks? I can understand why Unity uses Singletons (it's just easy and fast to make your game with them) and, although I try to be "puritan" to a few patterns (louse coupling and S***), I'm leaning towards using them as well. I'm just concerned about being able to unit test and being able to mock a few singletons. Overall, what's your experience so far? What have you used and what do you recommend?