Why not adopt me?
NAME
Mock::Apache - mock Apache environment for testing and debugging
SYNOPSIS
use Mock::Apache;
my $server = Mock::Apache->setup_server(param => 'value', ...);
my $request = $server->new_request(method_name => 'value', ...);
$server->
DESCRIPTION
Mock::Apache
is a mock framework for testing and debugging mod_perl 1.x applications. Although that version of mod_perl is obsolete, there is still a lot of legacy code that uses it. The framework is intended to assist in understanding such code, by enabling it to be run and debugged outside of the web server environment. The framework provides a tracing facility that prints all methods called, optionally with caller information.
Mock::Apache
is based on Apache::FakeRequest
but goes beyond that module, attempting to provide a relatively comprehensive mocking of the mod_perl environment.
NOTE: the module is still very much at an alpha stage, with much of the Apache::* classes missing, and much of the emulation incomplete or probably just wrong.
I am aiming to provide top-level methods to "process a request", by giving the mock apache object enough information about the configuration to identify handlers, etc. Perhaps passing the server_setup method the pathname of an Apache configuration file even and minimally "parsing" it.
METHODS
setup_server
new_request
execute_handler
localizes elements of the %ENV hash
DEPENDENCIES
- Apache::FakeTable
-
for emulation of
Apache::Table
(but this is subclassed to emulate pnotes tables, which can store references) - Module::Loaded
-
to pretend that the
Apache::*
modules are loaded. - IO::Scalar
-
for tieing
STDOUT
to the Apache response
BUGS AND LIMITATIONS
The intent of this package is to provide an emulation of mod_perl
1.3 that that will allow straightforward handlers to be unit-tested outside the Apache/mod_perl environment. However it will probably never provide perfect emulation.
The package is still in an early alpha stage and is known to be incomplete. Feedback and patches to improve the software are most welcome.
SEE ALSO
https://github.com/fordmason/Mock-Apache
mod_perl Pocket Reference by Andrew Ford, O'Reilly & Associates, Inc, Sebastapol, 2001, ISBN: 0-596-00047-2
ACKNOWLEDGEMENTS
Inspired by Apache::FakeRequest
by Doug MacEachern, with contributions from Andrew Ford <andrew@ford-mason.co.uk>.
AUTHORS
Andrew Ford <andrew@ford-mason.co.uk>
LICENSE AND COPYRIGHT
Copyright (C) 2013 Andrew Ford (<andrew@ford-mason.co.uk>). All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.