# 10. Reference Test

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

> **TL;DR**
> Tested Functionality: [10. Reference Contributor](reference-contributor.html)

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

## Define Test Data

This test reuses the Simple Language file `DefaultTestData.simple`.

Create the test file `ReferenceTestData.java` in the `testData` directory. This file has one Simple Language prefix and key, with the caret placed after the key.

```JAVA
public class Test {
  public static void main(String[] args) {
    System.out.println("simple:website<caret>");
  }
}
```

## Define a Test Method

Add the `testReference()` method to the `SimpleCodeInsightTest` class [previously defined](completion-test.html#define-a-test). This test is configured by the test files. The fixture gets the `PsiReference` at the caret position, and then asserts the resolved `SimpleProperty.value()` with the known value of that key.

```JAVA
public void testReference() {
  PsiReference referenceAtCaret =
      myFixture.getReferenceAtCaretPositionWithAssertion("ReferenceTestData.java", "DefaultTestData.simple");
  final SimpleProperty resolvedSimpleProperty = assertInstanceOf(referenceAtCaret.resolve(), SimpleProperty.class);
  assertEquals("https://en.wikipedia.org/", resolvedSimpleProperty.getValue());
}
```

## 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.

