The programming team has problems: unit test execution time has increased several times, and this has become a hindrance to the development. What is the reason for these performance troubles?
With the help of the profiler, the Tech Lead finds the first suspect — the Moq library, which creates stubs far too long. The brute-force approach — abandoning Moq and replacing the stubs with self-written classes does not help. The team is not happy with this prospect, and many advanced features in the Moq library are hard to implement.
The great C# detective Hercule Poirot with his colleague Arthur Hastings take up the case. Now everything is under suspicion: Moq, NUnit, Castle.DynamicProxy and even Reflection.Emit! Is replacing Moq with NSubstitute will help? Or replacing NUnit with xUnit?
During the investigation, Poirot explains the basic principles of working with the profiler, the main features of the stub libraries (Moq, NSubstitute), and the test frameworks (NUnit, xUnit). He demonstrates how to create dynamic types via Reflection.Emit and how to work with Castle.DynamicProxy. Don't miss the opportunity to learn about the brilliant approach to investigating and fixing code performance issues.
But will the great detective solve the mystery of dynamic assemblies? It hides in the depths of clr.dll…