3 ms·
+1, have 2 implementations that each have an independent branch point? if you combine them you have a function with 2 bool parameters, and 4 possible states to
by arccy 2y ago
+1, have 2 implementations that each have an independent branch point? if you combine them you have a function with 2 bool parameters, and 4 possible states to test, 2 of which you might never need
- hinkley 2y agoIt’s difficult to convince people that once you consider the testing pyramid, it’s not just 2 + 2 + 2 < 2 x 2 x 2 but also 2 + 2 < 2 x 2
- silvestrov 2y ago"The greatest shortcoming of the human race is our inability to understand the exponential function”. https://en.wikipedia.org/wiki/Albert_Allen_Bartlett https://en.wikipedia.org/wiki/Albert_Allen_Bartlett
- Aeolun 2y agoThere’s ways to write this that still keep the entrypoint to a single function. Having different function names as your parameters doesn’t make them any less so.
- cma 2y agoA very common one is two booleans with one combination of them being an invalid state (e.g. never are both bools true in a valid state but all can be false or a mixture). Use an enum instead that represents only the three valid cases.
- somethingsome 2y agoCombinatorial explosion of states is a nightmare, IME it means that the abstraction behind is not the right one. You really don't want to have a function that branches a lot inside. It's very difficult to test. When you think of adding a flag, run in your head 2^n, this will give you the least number of tests needed. Do you really want to write all of them?