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