Why use unit testing when you can have Automated Specification-Based Testing? The QuickCheck library does this for you. It can generate arbitrary (mock) functions and data using the Arbitrary
type-class.
“Dependency Injection” is a degenerate form of implicit parameter passing. In Haskell, you can use Reader
, or Free
to achieve the same thing in a more Haskelly way.