Tests are an integral part of any application. They are a safety net to refactor applications and also great living documentation. Beginning with unit tests, we'll see how to write thorough but also maintainable tests, and how the key to do so is to focus on the message-passing. Moving up the pyramid, we'll then go through end-to-end tests, but also component and contract tests. These last two are becoming increasingly important, since it's hard to maintain end-to-end tests in microservice architectures.
The objectives of this talk are three-fold:
This talk should appeal to anyone writing Elixir applications, regardless of the domain. Testing is a cross-cutting concern, and the principles discussed in this talk will apply to pretty much all areas of development, whether it's a web application or an embedded system.
Daniel Caixinha is a software engineer at Onfido, where he is using Elixir to build resilient systems that can also handle the high growth of the business. After graduating from Instituto Superior Técnico, he joined the startup world, mainly using Ruby, but he also got the chance to play around with Elixir. Upon joining Onfido, he got the chance to take Elixir more seriously, which made him fall in love with functional programming in general, and Elixir in particular. Besides building Elixir applications, he is fostering the use of Elixir, being a co-organiser of the Lisbon Elixir meetup.