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 .
AUTHORS
Andrew Ford
LICENSE AND COPYRIGHT
Copyright (C) 2013 Andrew Ford (). 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.