silverstripe-framework/docs/en/02_Developer_Guides/06_Testing/How_Tos/02_FixtureFactories.md
2017-08-07 14:01:38 +12:00

1.2 KiB

title: How to use a FixtureFactory

How to use a FixtureFactory

The FixtureFactory is used to manually create data structures for use with tests. For more information on fixtures see the Fixtures documentation.

In this how to we'll use a FixtureFactory and a custom blue print for giving us a shortcut for creating new objects with information that we need.


	class MyObjectTest extends SapphireTest {

		protected $factory;

		function __construct() {
			parent::__construct();

			$factory = Injector::inst()->create('FixtureFactory');

			// Defines a "blueprint" for new objects
			$factory->define('MyObject', array(
				'MyProperty' => 'My Default Value'
			));

			$this->factory = $factory;
		}

		function testSomething() {
			$MyObjectObj = $this->factory->createObject(
				'MyObject',
				array('MyOtherProperty' => 'My Custom Value')
			);

			echo $MyObjectObj->MyProperty;
			// returns "My Default Value"

			echo $myPageObj->MyOtherProperty;
			// returns "My Custom Value"
		}
	}

API Documentation