This class is used as a utility for testing.
Concrete implementations - like MockHTTPServer - are used to validate messages send to remote servers during testing. This allows your tests to verify any messages sent as a side-effect of an endpoint. For example, an application that has an endpoint that allows its user to associate their Nest account would use this class during testing. Instances of this class listen on localhost. You should be sure to close instances of this class during tearDown functions.
By default, any request made to an instance of this type will be responded to with a 200 and no HTTP body. You may add responses to instances of this class with queueResponse. They will be returned in the order they were provided in.
Example usages: test("Associate Nest account", () async { var nestMockServer = new MockHTTPServer(nestPort); await nestMockServer.open();
// Expect that POST /nest/pair sends an HTTP request to Nest server.
var response = await client.authenticatedRequest("/nest/pair", ...).post();
expect(response, ...);
// Verify the path of the HTTP request sent to Nest server.
var requestSentToNest = await nestMockServer.next();
expect(requestSentToNest .path, contains("${response["id"]}));
await nestMockServer.close();
});
test("Associate Nest account returns 503 when Nest is unreachable", () async {
var nestMockServer = new MockHTTPServer(nestPort);
await nestMockServer.open();
nestMockServer.queueResponse(MockHTTPServer.mockConnectionFailureResponse);
var response = await client.authenticatedRequest("/nest/pair", ...).post();
expect(response, hasStatus(503));
await nestMockServer.close();
});
- Inheritance
- Object
- MockServer<MockHTTPRequest>
- MockHTTPServer
Static Properties
- mockConnectionFailureResponse → Response
-
Used to simulate a failed request.
read / write
Constructors
- MockHTTPServer(int port)
Properties
- defaultDelay → Duration
-
The delay to be used for responses where a delay is not set
read / write - defaultResponse → Response
-
The response to be returned if there are no queued responses
read / write - port → int
-
The port to listen on.
read / write - queuedResponseCount → int
-
The number of currently queued responses
read-only - server → HttpServer
-
The underlying
HttpServer
listening for requests.read / write - hashCode → int
-
The hash code for this object.
read-only, inherited - isEmpty → bool
-
Whether or not there are any messages that have been sent to this instance but have yet to be read.
read-only, inherited - runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
Operators
-
operator ==(
other) → bool -
The equality operator.
inherited
Methods
-
close(
) → Future -
Shuts down the server listening for HTTP requests.
-
open(
) → Future -
Begins listening for HTTP requests on port.
-
queueResponse(
Response resp, { Duration delay: null }) → void -
Adds an HTTP response to the list of responses to be returned.
-
add(
MockHTTPRequest value) → void -
Adds an event to this server.
inherited -
clear(
) → void -
inherited
-
next(
) → Future<MockHTTPRequest> -
Returns an event that has been added to this server.
inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited -
toString(
) → String -
Returns a string representation of this object.
inherited