Разработка плагина Intellij-IDEA: Как проверить открытие другого файла на новой вкладке?

Я читаю эту документацию: https://confluence.jetbrains.com/display/IDEADEV/Testing+IntelliJ+IDEA+Plugins

Одна вещь, которую я не могу понять, как сделать с CodeInsightTestFixture это тестовый пример, как это:

  1. создайте файл с "а" в качестве содержимого и откройте его
  2. создайте файл с "b" в качестве содержимого и откройте его
  3. откройте первый файл
  4. утверждать, что текущее содержимое документа является "а"

Я пытался это, но это не удается:

//myFixture is a com.intellij.testFramework.fixtures.CodeInsightTestFixture
PsiFile psiFile = myFixture.configureByText(PlainTextFileType.INSTANCE, "a");
myFixture.configureByText(PlainTextFileType.INSTANCE, "b");
myFixture.openFileInEditor(psiFile.getVirtualFile());
myFixture.checkResult("a");

Ошибка:

junit.framework.ComparisonFailure: TEXT 
Expected :a
Actual   :b

Я думал, что у меня был ответ:

Это прошло, когда я попробовал это:

PsiFile psiFile = myFixture.configureByText("a.txt", "a");
myFixture.configureByText("b.txt", "b");
myFixture.openFileInEditor(psiFile.getVirtualFile());
myFixture.checkResult("a");

Все еще не уверен, почему оригинал не делает все же. Возможно, оригинал заменяет только текущий файл?

Оказывается, это не ответ. Я думаю, что есть один Editor за тестовый прибор. Все, что я сделал в этом тесте, изменил содержимое редактора, чтобы оно было другим. Это не то же самое, что "просмотр новой вкладки". С тех пор я узнал, что "каждая вкладка имеет свой собственный редактор", поэтому этот оригинальный вопрос не имеет особого смысла. На самом деле я пытаюсь спросить: "Разработка плагинов Intellij-IDEA: как проверить открытие другого файла на новой вкладке?"

1 ответ

"Открытие файла в новой вкладке" является частью основной функциональности IntelliJ IDEA; Я не понимаю, почему вы должны проверить это как часть ваших плагинов. Кроме того, правильно, что тестовое устройство имеет только один редактор.

Если ваши тесты генерируют или изменяют несколько файлов, вы можете использовать трехпараметрическую перегрузку CodeInsightTestFixture.checkResultByFile(), чтобы проверить, что каждый файл имеет ожидаемое содержимое.

Другие вопросы по тегам