wiki.techinc.nl/tests/phpunit
Tim Starling 95bd40b25c In query builders, use insertInto() and deleteFrom() instead of insert() and delete()
The design principle for SelectQueryBuilder was to make the chained
builder calls look as much like SQL as possible, so that developers
could leverage their knowledge of SQL to understand what the query
builder is doing.

That's why SelectQueryBuilder::select() takes a list of fields, and by
the same principle, it makes sense for UpdateQueryBuilder::update() to
take a table. However with "insert" and "delete", the SQL designers
chose to add prepositions "into" and "from", and I think it makes sense
to follow that here.

In terms of natural language, we update a table, but we don't delete a
table, or insert a table. We delete rows from a table, or insert rows
into a table. The table is not the object of the verb.

So, add insertInto() as an alias for insert(), and add deleteFrom() as
an alias for delete(). Use the new methods in MW core callers where
PHPStorm knows the type.

Change-Id: Idb327a54a57a0fb2288ea067472c1e9727016000
2023-09-08 10:16:08 +10:00
..
data LocalisationCache: Add tests for preload behavior 2023-08-08 13:09:34 +02:00
docs tests: Unbreak and actually run ExportDemoTest 2023-08-08 15:30:54 +00:00
includes In query builders, use insertInto() and deleteFrom() instead of insert() and delete() 2023-09-08 10:16:08 +10:00
integration/includes Merge "Make MediaWikiIntegrationTestCase::addCoreDBData a noop" 2023-09-07 13:11:09 +00:00
maintenance Reorg: Move MWTimestamp to MediaWiki\Utils 2023-08-19 05:53:40 +02:00
mocks Merge "Make "temp reserved" usernames not be "usable"" 2023-09-06 21:11:52 +00:00
structure Make MediaWikiIntegrationTestCase::addCoreDBData a noop 2023-09-05 00:36:36 +00:00
suites
tests Do not override run() in MediaWikiIntegrationTestCase 2023-09-05 00:33:30 +00:00
unit In query builders, use insertInto() and deleteFrom() instead of insert() and delete() 2023-09-08 10:16:08 +10:00
bootstrap.common.php
bootstrap.integration.php
bootstrap.maintenance.php
bootstrap.php
HamcrestPHPUnitIntegration.php
MediaWikiCoversValidator.php
MediaWikiGroupValidator.php Make isTestInDatabaseGroup static and case-sensitive 2023-08-15 21:01:03 +00:00
MediaWikiIntegrationTestCase.php Make MediaWikiIntegrationTestCase::resetDB static 2023-09-05 01:06:06 +00:00
MediaWikiLangTestCase.php
MediaWikiLoggerPHPUnitExtension.php
MediaWikiPHPUnitResultPrinter.php
MediaWikiTeardownPHPUnitExtension.php
MediaWikiTestCaseTrait.php phpunit: Remove reference of deprecated params in TestCaseTrait 2023-09-06 11:52:36 +00:00
MediaWikiUnitTestCase.php phpunit: Disallow access to MediaWikiServices in unit tests 2023-08-11 00:36:47 +00:00
MWTestDox.php
phpunit.php
README.md
ResourceLoaderTestCase.php ResourceLoader: Implement JavaScript source map support 2023-08-28 21:33:28 +01:00
suite.xml tests: Unbreak and actually run ExportDemoTest 2023-08-08 15:30:54 +00:00
TestSelectQueryBuilder.php

MediaWiki PHPUnit tests

WARNING: Integration tests may be destructive and alter or remove parts of your local database. We try to use temporary tables where possible, but you must never run tests on a production server or on a wiki where you don't want to lose data.

Running tests

If you haven't already, run composer update (specifically without --no-dev) in the MediaWiki core directory. This will install PHPUnit.

To read about how to run specific tests, refer to:

https://www.mediawiki.org/wiki/Manual:PHP_unit_testing/Running_the_tests

Writing tests

A guide to writing PHPUnit tests for MediaWiki can be found at:

https://www.mediawiki.org/wiki/Manual:PHP_unit_testing