Phockito integration module for SilverStripe
PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
code
tests
README.md
_config.php
composer.json

README.md

Phockito integration module for SilverStripe

Phockito generates subclasses of the class under mock or spy. This doesn't work well with SilverStripe, which builds a manifest of classes and expects them to remain static during execution.

This module provides integration between SilverStripe and Phockito, so that every time you create a mock or spy with Phockito, it's registered in SilverStripe's ClassManifest.

This all happens automatically, so you don't have to worry about it - just add this module to your composer.json, then start calling Phocktio::mock or Phockito::spy in your tests.

If you're calling Phockito::include_hamcrest() to use Hamcrest matchers like anything(), please remember to limit the inclusion to the test execution by placing it in setUpOnce(). Placing it outside of the class scope and executing the include calls when then PHP file is first included by PHP can cause clashes with PHPUnit's built-in matchers. To further avoid clashes, you should also avoid including these matchers yourself (PHPUnit\Framework\Assert\Functions.php).

<?php
class MyTest extends SapphireTest {

	public function setUpOnce() {
		if (class_exists('Phockito')) {
			Phockito::include_hamcrest();
		}

		parent::setUpOnce();
	}

}