diff --git a/TESTING.asciidoc b/TESTING.asciidoc index 80512356d9f1f..530d5fe58c943 100644 --- a/TESTING.asciidoc +++ b/TESTING.asciidoc @@ -681,12 +681,15 @@ There are multiple base classes for tests: directly by unit tests. * **`ESSingleNodeTestCase`**: This test case sets up a cluster that has a single node. -* **`ESIntegTestCase`**: An integration test case that creates a cluster that - might have multiple nodes. -* **`ESRestTestCase`**: An integration tests that interacts with an external - cluster via the REST API. This is used for Java based REST tests. -* **`ESClientYamlSuiteTestCase` **: A subclass of `ESRestTestCase` used to run - YAML based REST tests. +* **`ESIntegTestCase`**: An internal integration test that starts nodes within the same JVM as the test. + These allow you to test functionality that is not exposed via the REST API, or for verifying a certain internal state. + Additionally, you can easily simulate tricky distributed setups that are difficult to do in REST tests. + If you only need to start one node, use `ESSingleNodeTestCase` instead, which is a much lighter test setup. +* **`ESRestTestCase`**: An integration test that interacts with an external + cluster via the REST API. This is used for Java based REST tests. This should + be the first choice for writing integration tests as these tests run in a much more + realistic setup. +* **`ESClientYamlSuiteTestCase` **: A subclass of `ESRestTestCase` used to run YAML based REST tests. === Good practices