SilverStripe ABTesting
Installation (with composer)
$ composer require heyday/silverstripe-abtesting:0.2.0
For 2.4 see the tag 0.1.7
Usage
Add the following to your root level Page SilverStripe template, (*1)
<% if ABTestScript %>
$ABTestScript
<% else %>
<% if SiteConfig.ABTestGlobalScript %>
$SiteConfig.ABTestGlobalScript
<% end_if %>
<% end_if %>
Decorate the object/page you wish to test with the ABTestingExtension, (*2)
class Page_Controller extends ContentController
{
public static $extensions = array(
"ABTestingExtension('a','b')"
);
}
Set up the variations for the test, (*3)
For SilverStripe 2.4, (*4)
<% if getABTesting(st_b) %>
// State for b
<% else %>
// State for default
<% end_if %>
For SilverStripe 3, (*5)
<% if getABTesting(st,b) %>
// State for b
<% else %>
// State for default
<% end_if %>
Where st
is a GET variable like /?st=b
, (*6)
Unit testing
$ composer install --dev
$ vendor/bin/phpunit