How to test software: mocking, stubbing, and contract testing | Hacker News Reader