Lars is an Evangelist at Giesecke+Devrient, a global company specialized in payments, connectivity, identities, and digital infrastructure. An engineer at heart, they are working to bring modern financial services to people. Lars writes articles and talks about a multitude of topics. Previously, Lars was a PhD student at TU München in the field of logic and verification. Their research focus was on techniques for verified code generation from theorem provers.
Mocking is an infamous technique from object-oriented programming. The goal is to be able to test stateful systems in small pieces by simulating the behaviour of certain objects. The problem with mocking is that it usually requires heavyweight frameworks and clutters test code. There are countless rants on that topic, but this talk isn't one. Instead, we'll explore the functional approach in Haskell: Designing a small language supporting the desired behaviour, and then writing interpreters which can execute its semantics in various ways. Testing I/O code was never easier.