3. Completion Test
Define Test Data
Create the DefaultTestData.simple file in the testData directory. This file contains test Simple language properties that will be completed in a test Java file (see the Test class later in this section).
Create a test input Java file CompleteTestData.java in the testData directory. This file contains a Simple Language reference within the Java code at <caret> special marker, which denotes the caret position to use in the test.
Define a Test
Subclass LightJavaCodeInsightFixtureTestCase to create SimpleCodeInsightTest. Override getTestDataPath(), and return the path from the root of this plugin module to the testData directory.
At this point, only one test is defined in SimpleCodeInsightTest: testCompletion(). This method:
Configures the test using the two input files.
Calls the basic completion functionality. Behind the scenes, this method call creates a list of possible elements to complete the embedded Simple Language reference.
Checks the list of returned lookup strings to ensure it matches the completion variants provided by the reference.
A number of related methods exist in CodeInsightTestFixture for testing completion and lookup elements, e.g., when testing completion variants and requiring only one testdata file CodeInsightTestFixture.testCompletionVariants().
Run the Test
Run the test and make sure it's successful.
Running tests
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/build/test-results/test directory.
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.