This module is a subclass of LWP::UserAgent which overrides a few key
low-level methods that are concerned with actually sending your request
over the network, allowing an interception of that request and simulating a
particular response. This greatly facilitates testing of networking client
code where the server follows a known protocol.
The synopsis describes a typical case where you want to test how your
application reacts to various responses from the server. This module will
let you send back various responses depending on the request, without
having to set up a real server to test against. This can be invaluable when
you need to test edge cases or error conditions that are not normally
returned from the server.
There are a lot of different ways you can set up the response mappings, and
hook into this module; see the documentation for the individual interface
You can use a PSGI app to handle the requests - see examples/call_psgi.t
in this distribution, and also register_psgi below.
OR, you can route some or all requests through the network as normal, but
still gain the hooks provided by this class to test what was sent and
my $useragent = Test::LWP::UserAgent->new(network_fallback => 1);
'timeout was overridden properly',
'uri my code should have constructed',
'I should have gotten an OK response',
Artistic-1.0 OR GPL-1.0-or-later