| #summary "Why My Patch Doesn't Need Tests" |
| #labels Importance-Useful,Phase-QA,Contents-Complete |
| |
| Author: Adrienne Walker and Raphaël Moll (colleagues of Nathaniel's at Google) |
| |
| ==_Appeal To Importance_== |
| |
| This needs to land this right now to fix a bug / make a milestone / my hair’s on fire; can't you understand that there's no time for tests?? |
| |
| ==_Sufficient Coverage Argument_== |
| |
| This CL already has at least one unit test, and therefore should be considered reasonably tested. |
| |
| ==_Argument From Historical Laziness_== |
| |
| This other pre-existing system doesn’t have tests, so my similar new system shouldn’t need any either! |
| |
| ==_Missing Infrastructure Argument_== |
| |
| There’s no good way to write these tests easily, so I shouldn’t need to write them. |
| |
| ==_Insufficient Coverage Argument_== |
| |
| The tests requires extensive mocking (of servers, RPCs, filesystems, 3d party libs with their own side-effects, GUI) and would thus not test the real system but a limited fictional subsystem. Such tests would be totally irrelevant so they need not be written. |
| |
| ==_Just a Refactoring Argument_== |
| |
| All functionality in this patch is already entirely covered by preexisting tests. Trust me. |
| |
| ==_Promise Of Future Work_== |
| |
| I pinky-swear that I will write a follow-up CL that adds tests, just as soon as I fix these other things first... |
| |
| ==_The Proof is in the Pudding_== |
| |
| We're already using this for releases. It clearly works so we don't need to write tests. At this point we empirically have full coverage and just found a couple minor bugs. |