Intellij-IDEA插件开发:如何在新选项卡中测试打开不同的文件?

时间:2015-04-15 06:45:40

标签: java intellij-idea intellij-plugin

我正在阅读此文档:https://confluence.jetbrains.com/display/IDEADEV/Testing+IntelliJ+IDEA+Plugins

我无法弄清楚如何使用CodeInsightTestFixture这样的测试用例:

  1. 使用" a"创建一个文件作为内容并打开它
  2. 使用" b"创建一个文件作为内容并打开它
  3. 打开第一个文件
  4. 断言当前的文档内容是" a"

  5. 我尝试过但却失败了:

    //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 个答案:

答案 0 :(得分:0)

“在新标签页中打开文件”是IntelliJ IDEA核心功能的一部分;我不明白为什么你需要在插件测试中测试它。此外,测试夹具只有一个编辑器是正确的。

如果测试生成或修改多个文件,则可以使用CodeInsightTestFixture.checkResultByFile()的三参数重载来检查每个文件是否具有预期内容。