Testando APIs externas com WireMock
Faça testes de integração do código que chama serviços HTTP externos simulando esses serviços com WireMock, em vez de acessar a rede.
Testando APIs externas com WireMock é uma aula grátis de Testing Mastery: JUnit, Mockito & Integration Tests no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Testing Mastery: JUnit, Mockito & Integration Tests, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Testing Mastery: JUnit, Mockito & Integration Tests inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
The External Dependency Problem
Integration tests often touch real collaborators, but calling a live third-party API is slow, flaky, and may cost money. WireMock runs a local HTTP server you can program to mimic that API.
What WireMock Provides
WireMock lets you:
- Stub HTTP responses for specific requests
- Simulate delays, errors, and edge cases
- Verify that your code made the expected calls
Starting a WireMock Server
In JUnit you start WireMock on a port (or a random one) before tests run.
WireMockServer server =
new WireMockServer(options().dynamicPort());
server.start();Stubbing a Response
Tell WireMock how to respond to a request using its fluent builder.
server.stubFor(get(urlEqualTo("/users/1"))
.willReturn(aResponse()
.withStatus(200)
.withBody("{\"id\":1}")));Pointing Your Client at WireMock
Configure the code under test to use WireMock's base URL. Using the dynamic port keeps tests isolated.
String baseUrl =
"http://localhost:" + server.port();
UserClient client = new UserClient(baseUrl);Exercising the Code
Now call your client. It hits WireMock, which returns the stubbed payload, and your assertions check the parsed result.
User u = client.fetch(1);
assertEquals(1, u.getId());Simulating Failures
Return a 500 or a malformed body to test your error handling and retries.
server.stubFor(get(urlEqualTo("/users/2"))
.willReturn(aResponse().withStatus(500)));Simulating Latency
Add a fixed delay to verify timeout handling.
server.stubFor(get(anyUrl())
.willReturn(aResponse()
.withFixedDelay(3000)));Verifying Requests
WireMock can assert that your code actually made a call with the right method, path, and headers.
server.verify(getRequestedFor(
urlEqualTo("/users/1")));Cleaning Up
Stop the server after tests, and reset stubs between tests so they stay independent.
server.resetAll();
server.stop();Where It Fits
WireMock sits between unit tests (which mock objects) and full E2E tests (which use real services). It gives realistic HTTP behavior without external dependencies.
Quick Check
What is the main reason to use WireMock in integration tests?
Recap
You learned to test external API calls:
- WireMock runs a local programmable HTTP server
- Stub responses, errors, and delays with its builder
- Point your client at the dynamic port
- Verify requests and reset between tests
Perguntas Frequentes
A aula “Testando APIs externas com WireMock” é grátis?
Sim — o texto completo de “Testando APIs externas com WireMock” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Testing Mastery: JUnit, Mockito & Integration Tests, atualize para CoddyKit PRO. O curso de Testing Mastery: JUnit, Mockito & Integration Tests inclui 4 aulas no total.
O que vou aprender em “Testando APIs externas com WireMock”?
Faça testes de integração do código que chama serviços HTTP externos simulando esses serviços com WireMock, em vez de acessar a rede. Você pratica Testing Mastery: JUnit, Mockito & Integration Tests com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Testing Mastery: JUnit, Mockito & Integration Tests?
Nenhuma experiência prévia é necessária. Testing Mastery: JUnit, Mockito & Integration Tests no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Testando APIs externas com WireMock”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Testing Mastery: JUnit, Mockito & Integration Tests?
Sim. Cada aula de Testing Mastery: JUnit, Mockito & Integration Tests inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Testes Unitários versus de Integração
- Configurando Testes de Integração
- Testando Interações com Bancos de Dados
- Testando APIs externas com WireMock