I’m looking into unit-testing with SimpleUnit
Issue: Chunks of PmWiki core-code will need to be mocked, or a working install of pmwiki will be required. (Can such a thing be set up via a script?)
At the very least, ‘pmwiki’ will need to be defined, as that’s usually the first check in code:
however, that’s pretty simple.
Not sure about other core functions or code. Including
pmwiki.php is, I believe, a non-starter, as it will output an entire web-page by default, and no way of turning that off AFAIK.
UPDATE: That may not be the case, as I found this 2007 message, so-far undocumented on pmwiki.org (save in the changelog @ PmWiki:ChangeLog#v22022):
From: Patrick R. Michaud <pmichaud <at> pobox.com>
Subject: Re: Using pmwiki's functions without building the wiki
Date: 2007-01-15 18:52:11 GMT (6 years, 47 weeks, 4 days, 21 hours and 20 minutes ago)
On Mon, Jan 15, 2007 at 05:50:57PM +0100, Wouter Groeneveld wrote:
> I would like to use IncludeText() so I can access the text in my wiki
> pages, but I do _NOT_ want to generate the whole skin and page.
> So when I include("pmwiki.php") > this automatically generates my wiki. I
> don't want that, I only want to display the includeText() output.
> Is there any possibility to tell pmwiki not do do anything? I only want to
> be able to use the function includetext()
For 2.2.0-beta22 I'm adding an $EnableActions configuration variable;
if set, then PmWiki will do all of its initialization and other work,
but won't call any $HandleActions routines.
Then you can do the following:
$EnableActions = 0;
This will initialize PmWiki (along with any configuration/customizations
that are being made, e.g. from local/config.php), but won't actually
perform any actions. The caller can then call the desired action
or other functions as desired.
Would that work for your needs?
UPDATE 2013.12.16: I can confirm that pmwiki.php can be included and used for testing; I do not yet know what “best practices” may be... hope to have minimal updates in here this week.
php development testing