Daniel Caixinha

Software Engineer, author and Meetup co-organiser

A whirlwind tour of testing in Elixir

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 will 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.

Objectives

The objectives of this talk are three-fold:

discuss some best practices for testing Elixir applications;

show how to create unit tests that are descriptive and maintainable, while also avoiding redundant coverage;

explore service-level and end-to-end tests, and demonstrate how the former helps in the maintainability of the latter.

Audience

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.

BIO

Daniel Caixinha is a software engineer at Onfido, where he is using Elixir to build resilient systems that can 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, and being a co-organiser of the Lisbon Elixir meetup.