11. Documentation Test
Edit pageLast modified: 24 March 2023Tested Functionality: 20. Documentation
tip
This page is part of multistep Testing a Custom Language Plugin tutorial.
Define a Test Method
Add the testDocumentation()
method to the SimpleCodeInsightTest
class previously defined. 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.
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.
Open the Gradle Tool Window.
Select the simple_language_plugin node. You may need to reimport it as a Gradle project.
Drill down under simple_language_plugin to Tasks, verification, test task.
Run the test task.
The results are displayed in the Run Tool Window, and also written to the simple_language_plugin
If the Run Tool Window displays the error Test events were not received, do the following:
In the Gradle Tool Window, drill down under simple_language_plugin to Tasks, build, clean task.
Run the clean task, which deletes the simple_language_plugin/build directory.
Restart the test.
Thanks for your feedback!