Database Testing With tSQLt

Evolutionary Database Development, as coined in Martin Fowler’s book Refactoring Databases, is a concept whereby the design of the database is not done upfront, but instead is done in a way that evolves as the software that is relying on the data store does. In...


Testing Spark Streaming: Integration testing with Docker Compose

In the first post of this series, we saw how to unit test Spark Streaming operations using Spark Testing Base. Here we'll see how to do integration testing using Docker Compose. What is Integration testing We previously saw a discussion about unit and integration testing....


Testing Spark Streaming: Unit testing

There is enough evidence to prove the importance of automated testing. Projects in new fields often neglect automated testing, as the domain itself steals the attention of the developers. However, lack of testing implies 'laugh now, cry later'. Some of the tools around Big Data...


Unit vs Integration Akka Testing

This is the sixth post in the series about integrating sync clients with async systems (1, 2, 3, 4, 5). Here we'll see how to test Akka actors with different testing styles. Unit vs Integration Testing Nowadays everybody agrees with the famous testing pyramid: Harder...


Isolating integration tests and mocking dependencies with Spring Boot

Integration tests can be slow and unreliable because they depend on too many components in the system. Up to a certain point, this is unavoidable: integration tests are here to validate how each part of your system plays with other internal or external components. We...


Testing multithreaded code in Java

Testing multithreaded code is a tough challenge. The first advice that you get when trying to test concurrency is to isolate your concurrent concerns in the code as much as possible. This a general design advice but in this case it's even more important. Make...