com.github.httpmock:mock-http-server-junit

Mock HTTP Server - JUnit Rules

License

License

Categories

Categories

JUnit Unit Testing
GroupId

GroupId

com.github.httpmock
ArtifactId

ArtifactId

mock-http-server-junit
Last Version

Last Version

1.1.9
Release Date

Release Date

Type

Type

jar
Description

Description

Mock HTTP Server - JUnit Rules
Project URL

Project URL

https://github.com/httpmock/mock-http-server
Source Code Management

Source Code Management

https://github.com/httpmock/mock-http-server

Download mock-http-server-junit

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.httpmock/mock-http-server-junit/ -->
<dependency>
    <groupId>com.github.httpmock</groupId>
    <artifactId>mock-http-server-junit</artifactId>
    <version>1.1.9</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.httpmock/mock-http-server-junit/
implementation 'com.github.httpmock:mock-http-server-junit:1.1.9'
// https://jarcasting.com/artifacts/com.github.httpmock/mock-http-server-junit/
implementation ("com.github.httpmock:mock-http-server-junit:1.1.9")
'com.github.httpmock:mock-http-server-junit:jar:1.1.9'
<dependency org="com.github.httpmock" name="mock-http-server-junit" rev="1.1.9">
  <artifact name="mock-http-server-junit" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.httpmock', module='mock-http-server-junit', version='1.1.9')
)
libraryDependencies += "com.github.httpmock" % "mock-http-server-junit" % "1.1.9"
[com.github.httpmock/mock-http-server-junit "1.1.9"]

Dependencies

compile (4)

Group / Artifact Type Version
com.github.httpmock : mock-http-server-dto jar 1.1.9
commons-io : commons-io jar 2.4
junit : junit jar 4.11
com.jayway.restassured : rest-assured jar 2.4.0

test (2)

Group / Artifact Type Version
org.hamcrest : hamcrest-all jar 1.3
org.mockito : mockito-all jar 1.10.8

Project Modules

There are no modules declared in this project.

mock-http-server

Coverage Status

With this mock http server you can write integration tests for your application and mock its http based backends. This example shows an integration test which configures the mock to answer for a specific request with a specific response. It also shows how to use this mock server with junit.

import static com.github.httpmock.builder.RequestBuilder.request;
import static com.github.httpmock.builder.ResponseBuilder.response;
import static com.github.httpmock.times.ExcatlyOnce.once;
import static com.jayway.restassured.RestAssured.given;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;

import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;

import com.github.httpmock.dto.RequestDto;
import com.github.httpmock.dto.ResponseDto;
import com.jayway.restassured.response.Response;

public class ExampleIT {

	@ClassRule
	public static HttpMockServer mockServer = new HttpMockServer();

	@Rule
	public HttpMock mock = new HttpMock(mockServer);

	@Test
	public void someTest() throws Exception {
		RequestDto request = request().method("POST").url("/some/url").build();
		ResponseDto response = response().payload("data")
				.contentType("text/plain").build();
		mock.when(request).thenRespond(response);

		Response mockResponse = given().baseUri(getBaseUri())
				.basePath(mock.getRequestUrl()).post("/some/url");

		assertThat(mockResponse.getBody().asString(), is("data"));
		assertThat(mockResponse.getContentType(), is("text/plain"));
		mock.verify(request, once());
	}

	private String getBaseUri() {
		return String.format("http://localhost:%d", mockServer.getPort());
	}
}

Versions

Version
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0