
On Sat, Aug 26, 2017 at 08:25:41PM +0200, francismb wrote:
Hi all, while using `unittest` I see the pattern of creating an error message with the test context for the case that some `assert...` methods fails (to get a good error message). On the lines: [...] The `msg` is just used in case the assert fails but its creation takes time and adds up.
What is the best practice/pattern you use here?
I think the best practice here is: The Rules of Optimization are simple. Rule 1: Don’t do it. Rule 2 (for experts only): Don’t do it yet. -- Michael A. Jackson, "Principles of Program Design" Personally, I doubt that the time creating the error message will be anything more than an insignificant fraction of the total time. Perhaps as much as 0.1% of the total time? But I've just plucked that number out of thin air, so it's probably wrong. If you want to profile unittest and see just how much time is spent creating error messages for tests which pass, go right ahead and I'll be happy to be proven wrong. Until somebody actually profiles the tests, and demonstrates that delaying creating of the error messages has the potential to speed up unit testing by, oh, at least 5%, I'm sticking with "don't do it yet". -- Steve