Slide 1

Slide 1 text

Oleg Nenashev, @oleg_nenashev CNCF Ambassador

Slide 2

Slide 2 text

Oleg Nenashev @oleg_nenashev oleg-nenashev Community builder Developer Tools Hacker Testcontainers Champion Cloud Native Suisse Romande #RussiansAgainstPutin #StandWithUkraine

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

When IT Goes wrong

Slide 6

Slide 6 text

Do you `make it`? IT - Integration Tests

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Integration Testing ● Multiple technology stacks and toolchains ● Many teams involved ● Sacred knowledge ● [Almost] always too late

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Async Q&A: Testcontainers Slack speakerdeck.com/onenashev

Slide 12

Slide 12 text

Build Unit tests Publish Reports Integration tests Publish Reports NOW “Shift Left” Fast integrations tests are critical

Slide 13

Slide 13 text

Ways to do integration testing 1. Testing against Production/Staging Slow Fast Nope Accu- rate 2. Testing against a simplified/containerized instance (e.g. Testcontainers) 4. Mocking at the code level (e.g. GoMock) 3. Mocking at the API provider level (e.g. Microcks, WireMock)

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

SDKs testcontainers.org … and

Slide 17

Slide 17 text

github.com/testcontainers/ testcontainers-go

Slide 18

Slide 18 text

60+ Testcontainers Modules for Golang testcontainers.com/modules/?language=go

Slide 19

Slide 19 text

WireMock has an official Testcontainers module! testcontainers.com/modules/wiremock

Slide 20

Slide 20 text

Ways to do integration testing 1. Testing against Production/Staging Slow Fast Nope Accu- rate 2. Testing against a simplified/containerized instance (e.g. Testcontainers) 4. Mocking at the code level (e.g. GoMock) 3. Mocking at the API provider level (e.g. Microcks, WireMock)

Slide 21

Slide 21 text

wiremock.org/docs/stubbing IF (request_url) THEN (response) * * it gets MUCH more complex WireMock Config JSON: Client library response request Client App Mock API Server HTTP/2 API Mocking 101

Slide 22

Slide 22 text

API Mocking for Java. Examples en.wikipedia.org/wiki/Comparison_of_API_simulation_tools Proprietary Open Source `

Slide 23

Slide 23 text

API Mocking Tools Main implementation in Java Native lib, Docker images and Testcontainers modules Support for GraalVM Rich Ecosystem Sandbox CNCF Project Golang / Microservice arch Docker image, Testcontainers module, All-in K8s Charts Less Rich Ecosystem

Slide 24

Slide 24 text

WireMock for Go Testcontainers Module REST API Client Go test integrations go.wiremock.org github.com/wiremock/wiremock-testcontainers-go

Slide 25

Slide 25 text

DEMO - API Mocking with WireMock ● Golang, Testcontainers, WireMock Module ● Sources location: github.com/wiremock/wiremock-testcontain ers-go/tree/main/examples/quickstart

Slide 26

Slide 26 text

github.com/wiremock/wiremock-testcontainers-go

Slide 27

Slide 27 text

Is a Single Container Enough? - asking for a container CI/CD guy

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Platforms Docker Compose

Slide 30

Slide 30 text

References ● Testcontainers for Golang: https://golang.testcontainers.org/ ● WireMock Demos: github.com/wiremock/wiremock-testcontainers-go/tree/main/examples

Slide 31

Slide 31 text

Takeaways 31 ● Shift left the integration testing ● API Mocking / abstraction are great… when used right ● There is no silver bullet ● WireMock and Testcontainers address their own use-cases ● They work well together!

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

It’s [always] a great time to contribute! testcontainers.org/contributing wiremock.org/participate 33

Slide 34

Slide 34 text

Learn More at Oleg Nenashev - Workshop Mocks as Code. Modeling AWS service providers with Testcontainers, WireMock and Localstack LocalStack

Slide 35

Slide 35 text

KCD Suisse Romande Dec 2025, Genève, CERN

Slide 36

Slide 36 text

Async Q&A: Testcontainers Slack speakerdeck.com/onenashev

Slide 37

Slide 37 text

GitHub: oleg-nenashev Twitter: @oleg_nenashev Questions? Gradle Community Slack, #developer-productivity-engineering Testcontainers Slack