Code Reference Map
When to Use
Finding test base classes, traits, assertions, example tests in Drupal core.
Test Base Classes
| Class |
Path |
Use Case |
| UnitTestCase |
/core/tests/Drupal/Tests/UnitTestCase.php |
Pure PHP logic, no Drupal dependencies |
| KernelTestBase |
/core/tests/Drupal/KernelTests/KernelTestBase.php |
Services, database, entities, no HTTP |
| BrowserTestBase |
/core/tests/Drupal/Tests/BrowserTestBase.php |
Full Drupal, HTTP simulation, no JS |
| WebDriverTestBase |
/core/tests/Drupal/FunctionalJavascriptTests/WebDriverTestBase.php |
JavaScript, AJAX, real browser |
Test Traits
| Trait |
Path |
Provides |
| UserCreationTrait |
/core/modules/user/tests/src/Traits/UserCreationTrait.php |
createUser(), createRole(), drupalLogin() |
| NodeCreationTrait |
/core/modules/node/tests/src/Traits/NodeCreationTrait.php |
createNode(), getNodeByTitle() |
| ContentTypeCreationTrait |
/core/modules/node/tests/src/Traits/ContentTypeCreationTrait.php |
createContentType() |
| BlockCreationTrait |
/core/modules/block/tests/src/Traits/BlockCreationTrait.php |
placeBlock() |
| RandomGeneratorTrait |
/core/tests/Drupal/Tests/RandomGeneratorTrait.php |
randomMachineName(), randomString() |
| SchemaCheckTestTrait |
/core/tests/Drupal/Tests/SchemaCheckTestTrait.php |
assertConfigSchema() |
| AssertContentTrait |
/core/tests/Drupal/KernelTests/AssertContentTrait.php |
assertText(), assertNoText() for Kernel |
Assertions (WebAssert)
| Method |
Purpose |
Example |
| statusCodeEquals() |
HTTP status |
$this->assertSession()->statusCodeEquals(200) |
| pageTextContains() |
Text on page |
$this->assertSession()->pageTextContains('Welcome') |
| fieldExists() |
Form field present |
$this->assertSession()->fieldExists('title') |
| elementExists() |
CSS selector |
$this->assertSession()->elementExists('css', '.message') |
| linkExists() |
Link present |
$this->assertSession()->linkExists('Edit') |
| buttonExists() |
Button present |
$this->assertSession()->buttonExists('Save') |
| addressEquals() |
Current URL |
$this->assertSession()->addressEquals('user/login') |
| waitForElement() |
Element appears |
$this->assertSession()->waitForElement('css', '#result') |
Example Test Files
| Module |
Type |
Path |
| Node Unit |
Unit |
/core/modules/node/tests/src/Unit/ |
| Node Kernel |
Kernel |
/core/modules/node/tests/src/Kernel/ |
| Node Functional |
Browser |
/core/modules/node/tests/src/Functional/ |
| Node JS |
WebDriver |
/core/modules/node/tests/src/FunctionalJavascript/ |
| System Kernel |
Kernel |
/core/modules/system/tests/src/Kernel/ |
| User Functional |
Browser |
/core/modules/user/tests/src/Functional/ |
| Block Kernel |
Kernel |
/core/modules/block/tests/src/Kernel/ |
Test Modules (Fixtures)
| Path |
Purpose |
/core/modules/node/tests/modules/node_test/ |
Node module test fixtures |
/core/modules/system/tests/modules/ |
System test modules (200+ examples) |
/core/modules/user/tests/modules/ |
User module test fixtures |
Configuration Files
| File |
Purpose |
/core/phpunit.xml.dist |
PHPUnit configuration template |
/core/tests/README.md |
Official test running documentation |
/core/.env.example |
Nightwatch environment template |
See Also