TestResponse class

Test response wrapper for HTTP responses with convenient assertion methods.

Provides a comprehensive interface for examining and asserting on HTTP responses in tests. Includes helpers for common response patterns, content type checking, and cookie handling.

Example:

void main() {
  test('API returns user data', () async {
    final response = await testApp.get('/api/users/123').send();

    expect(response.isSuccess, true);
    expect(response.statusCode, 200);
    expect(response.isJson, true);

    final user = response.json;
    expect(user['id'], 123);
    expect(user['name'], 'John Doe');
  });

  test('Error handling', () async {
    final response = await testApp.get('/api/users/999').send();

    expect(response.isClientError, true);
    expect(response.statusCode, 404);
    expect(response.json['error'], 'User not found');
  });

  test('Cookie handling', () async {
    final response = await testApp.post('/api/login')
      .form({'username': 'user', 'password': 'pass'})
      .send();

    expect(response.isSuccess, true);
    final sessionCookie = response.cookie('session_id');
    expect(sessionCookie, isNotNull);
  });
}

Features:

  • Status code classification (success, error, redirect)
  • Content type detection and helpers
  • JSON parsing with error handling
  • Cookie extraction and management
  • Header access methods
  • Response body content access

Constructors

TestResponse(HttpClientResponse _response, String body)
Creates a test response wrapper around an HTTP response.

Properties

body → String
The complete response body as a string.
final
contentLength → int?
Get response Content-Length in bytes.
no setter
contentType → ContentType?
Get the parsed Content-Type header.
no setter
cookies → List<Cookie>
Get all cookies from Set-Cookie headers.
no setter
hashCode → int
The hash code for this object.
no setterinherited
headers → HttpHeaders
All HTTP headers from the response.
no setter
isClientError → bool
Check if response indicates a client error (4xx status codes).
no setter
isHtml → bool
Check if response Content-Type is HTML.
no setter
isJson → bool
Check if response Content-Type is JSON.
no setter
isRedirect → bool
Check if response indicates a redirect (3xx status codes).
no setter
isServerError → bool
Check if response indicates a server error (5xx status codes).
no setter
isSuccess → bool
Check if response indicates success (2xx status codes).
no setter
isText → bool
Check if response Content-Type is any text type.
no setter
json → dynamic
Parse response body as JSON.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
statusCode → int
HTTP status code of the response.
no setter
text → String
Get response body as raw text.
no setter

Methods

Get a specific cookie by name from the response.
hasStatus(int expectedStatusCode) → bool
Check if response has a specific status code.
Get the value of a specific response header.
headerValues(String name) → List<String>?
Get all values for a response header that may have multiple values.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
String representation of the test response.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited