# 11. Documentation Test

> For the complete documentation index, see [llms.txt](https://plugins.jetbrains.com/docs/intellij/llms.txt).

> **TL;DR**
> Tested Functionality: [20. Documentation](documentation-provider.html)

> **Tip:**
> This page is part of multistep [Testing a Custom Language Plugin](writing-tests-for-plugins.html) tutorial.

## Define a Test Method

Add the `testDocumentation()` method to the `SimpleCodeInsightTest` class [previously defined](completion-test.html#define-a-test). This test uses the files `DocumentationTestData.java` and `DocumentationTestData.simple` from the `testData` directory to construct a test project and opens the first one in the editor with the virtual caret positioned at the usage of the Simple Language property.

Using the `DocumentationManager`, it checks if a target element for documentation is found, retrieves the documentation provider for the Simple Language and creates the documentation string for the target element. Finally, the documentation string is verified against the expected output.

```JAVA
public void testDocumentation() {
  myFixture.configureByFiles("DocumentationTestData.java", "DocumentationTestData.simple");
  final PsiElement originalElement = myFixture.getElementAtCaret();
  PsiElement element = DocumentationManager
      .getInstance(getProject())
      .findTargetElement(myFixture.getEditor(), originalElement.getContainingFile(), originalElement);

  if (element == null) {
    element = originalElement;
  }

  final DocumentationProvider documentationProvider = DocumentationManager.getProviderFromElement(element);
  final String generateDoc = documentationProvider.generateDoc(element, originalElement);
  assertNotNull(generateDoc);
  assertSameLinesWithFile(getTestDataPath() + "/" + "DocumentationTest.html.expected", generateDoc);
}
```

## Run the Test

Run the test and make sure it's successful.

Procedure: Running tests

1. Open the Gradle Tool Window.

2. Select the simple_language_plugin node. You may need to reimport it as a Gradle project.

3. Drill down under simple_language_plugin to Tasks, verification, test task.

4. Run the test task.

The results are displayed in the Run Tool Window, and also written to the `simple_language_plugin/build/test-results/test` directory.

If the Run Tool Window displays the error Test events were not received, do the following:

1. In the Gradle Tool Window, drill down under simple_language_plugin to Tasks, build, clean task.

2. Run the clean task, which deletes the `simple_language_plugin/build` directory.

3. Restart the test.

