When modeling (aka “mocking”) services during software development, you need to mimic APIs, databases, and other data providers. You can't do this with just one tool; you need to combine several. The good news is that the Testcontainer ecosystem makes it possible to do this with just a few lines of code! And it's available for many ecosystems: Java, Python, JavaScript, Golang, C/C++, .NET, etc.
In this session, I'll demonstrate some ways to create test services, databases, and API providers using Testcontainers and WireMock for a modern Java project, with Gradle and Quarkus. The same approach can be used for other languages, and I'll present examples for Python! Then, we'll extend the approach by adding fake data generation using the Faker or Synthesized libraries, which can be used for both relational and sequence data.
P.S.: And who is d'Artagnan? Prepare for a surprAIse!