I missed the shrinking step from the discussion of property based testing. I only have hands on experience with Hypothesis the Python library, and from what I heard from @Martin Janiczek at Lambda Days, that makes me very fortunate, as it's one of (if not) the best implementations of the idea... It provides strategy combinators that compose very nicely and allow me to define what my inputs should look like and then runs thousands of random inputs and if it hits a failure, it shrinks the case until it finds the smallest example that still fails the test and reports that.
When I hit new cases in CI I can just add them to the input definition as examples it should always try.
Oh and on testing IO, I love VCR (Ruby/Python) for recording HTTP interactions with services in my integration tests.
Last updated: Jul 06 2025 at 12:14 UTC