@webbower if you don't specify:

  • a fixture file
  • protected $usesDatabase = true;
  • protected static $extra_dataobjects then your test will use the live database (which is bad).

but, for the most part it works - and sometimes it's actually a good thing :)

Which gets tricky, because they're integration tests passes and failure can be dependent on the project's configuration, which can directly affect the test execution.

the extra_dataobjects directive is for the manifest to include the test data objects you've defined (which are excluded from normal site operation)... which in turn means they get a table made on dev/build

Because the truth is that SilverStripe isn't very strong on unit tests. Almost all the tests are actually integration tests.

Ah. Does protected $extraDataobjects signal to not attempt a DB write if write() is called?