|
|
|
|
|
by scott_s
2900 days ago
|
|
I mostly agree, except that for parts of the code that meet these conditions, I aggressively unit test as the default. To the point that if an end-to-end test uncovers a potential bug in this component, my first action is to write a new unit test for this component inspired by the end-to-end test. If that unit test fails, then I can focus on just the unit test, and not worry about the end-to-end test until the unit test passes. Another condition I would add to the list, which the component of mine I am thinking about meets is: 5) Failures in this component have cascading effects to multiple other components, causing seemingly "impossible" failures that are not obvious to others that they were caused by this component. |
|
That needn't be a unit test. It could simply be a lower level integration test.