I'm developing a .NET Windows Forms application. I use the model-view-presenter design pattern, passive view + supervising controller, to be more exact.
The presenters in my application perform background operations, which can take several seconds (or longer) to complete. When the background process completes, the presenter invokes a call on the view, passing it all the data it needs to render / update the form. This all works nicely.
Now, I want to be able to test the user experience, with regard to these long-running background processes. For instance, I want to see how the UI looks and behaves, when one or more background processes are running.
To do this, I put some Thread.Sleep(..) calls in my presenters,
surrounded by an #IF DEBUG
compilation symbol.
I don't like this, because it clutters my code,
it is hard to maintain and can easily leak into production code.
Do you have a better solution for testing the user experience with regard to long running background processes in a winforms application?