hafriedlander/silverstripe-phockito

Integrate Phockito (a PHP Mocking framework) with SilverStripe

Installs: 34 262

Dependents: 2

Suggesters: 0

Security: 0

Stars: 4

Watchers: 3

Forks: 6

Open Issues: 5

Type:silverstripe-module

1.0.0 2013-10-24 21:27 UTC

This package is not auto-updated.

Last update: 2024-03-25 12:50:17 UTC


README

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();
	}

}