diff --git a/core/core.api.php b/core/core.api.php index fec1e55..fb595fc 100644 --- a/core/core.api.php +++ b/core/core.api.php @@ -1122,40 +1122,40 @@ * on PSR-4, namespaces, and where to place classes. * * @section write_functional_phpunit Write functional tests (phpunit) - * Functional tests are written using PHPUnit as underlying framework, we call - * them BrowserTestBase, as they use a simulated browser, which can click links - * goto URLs, post to forms, and much more. To write a functional test: - * - You need to extend \Drupal\Tests\BrowserTestBase. There are a couple of - * base assertions for stuff related with pure data ($this->assertEquals), but - * more important with $this->assertSession() you get a - * \Drupal\Tests\WebAssert object containing browser related assertions like - * linkExists(). - * - The expected folder is yourmodule/tests/src/Functional and using a - * namespace like Drupal\Tests\yourmodule\Functional. - * a @group annotation, which gives information about the test. - * - You may also override the default setUp() method, which can set be used to - * set up content types and similar procedures. + * Functional tests are written using the BrowserTestBase base class, and use + * PHPUnit as their underlying framework. They use a simulated browser, in which + * the test can click links, visit URLs, post to forms, etc. To write a + * functional test: + * - Extend \Drupal\Tests\BrowserTestBase. + * - Place the test in the yourmodule/tests/src/Functional directory and use + * the Drupal\Tests\yourmodule\Functional namespace. + * - Add a @group annotation. For example, if the test is for a Drupal 6 + * migration process, the group core uses is migrate_drupal_6. Use yourmodule + * as the group name if the test does not belong to another larger group. + * - You may also override the default setUp() method, which can be used to set + * up content types and similar procedures. * - In some cases, you may need to write a test module to support your test; * put such modules under the yourmodule/tests/modules directory. * - Methods in your test class whose names start with 'test', and which have - * no arguments, are the actual test cases. Each one should test a logical + * no arguments are the actual test cases. Each one should test a logical * subset of the functionality, and each one runs in a new, isolated test * environment, so it can only rely on the setUp() method, not what has * been set up by other test methods. * - * @section write_jsfunctional_phpunit Write JavaScript tests + * @section write_jsfunctional_phpunit Write JavaScript tests (phpunit) * A lot of functionality relies on JavaScript. In order to allow people to - * provide functional test coverage for those Drupal provides another base - * class, \Drupal\FunctionalJavaScriptTests\JavascriptTestBase, which works - * really similar to BrowserTestBase, exists. - * - You need to put the tests into tests/src/FunctionalJavascript and use - * the Drupal\Tests\$module\FunctionalJavascript namespace - * - You need to run phantomjs, see core/tests/README.md. - * - You use the same assertions as BrowserTestBase. - * - When clicking a link/button with ajax behaviour, you need to keep in mind - * that the underlying browser might need a while to deliver changes to the - * HTML, which is why we provide - * $this->assertSession()->assertWaitOnAjaxRequest() to wait for that. + * provide functional test coverage for this, Drupal provides the + * JavascriptTestBase class, which works really similar to BrowserTestBase: + * - Extend \Drupal\FunctionalJavaScriptTests\JavascriptTestBase. + * - Place the test into yourmodule/tests/src/FunctionalJavascript and use + * the Drupal\Tests\yourmodule\FunctionalJavascript namespace + * - Add a @group annotation. Use yourmodule as the group name if the test does + * not belong to another larger group. + * - To run JavaScript tests, set up phantomjs, see core/tests/README.md. + * - When clicking a link/button with Ajax behaviour attached, you need to keep + * in mind that the underlying browser might need a while to deliver changes + * to the HTML. Use $this->assertSession()->assertWaitOnAjaxRequest() to wait + * for that. * * @section running Running tests * You can run both Simpletest and PHPUnit tests by enabling the core Testing