IntelliJ结构搜索:尝试在测试中捕获

时间:2016-01-26 10:33:52

标签: java optimization intellij-idea junit structural-search

我最近从Eclipse切换到IntelliJ Idea,我对这一变化感到非常满意。 但是,我不知道如何编写自己的结构搜索模板

我想识别包含try ... catch ... finally块的所有测试方法,以便将其删除。 替换模板是第二个目标,首先我想了解如何找到它们。

我尝试使用现有的Idea模板查找使用@Test注释的所有方法,并稍微修改了此模板:

class $Class$ {
    @Test
    $ReturnType$ $MethodName$($ParameterType$ $Parameter$);
}

我还使用预定义模板查找所有try ... catch块,我添加了finally检测:

try {
    $TryStatement$;
} catch($ExceptionType$ $ExceptionDcl$) {
    $CatchStatement$;
} finally{
    $FinallyStatment$;
}

但我无法弄清楚如何进一步混合这两个模板,以便找到包含try ... catch ... finally块的所有测试方法

以下是我想要找到的“错误测试”的示例,以及与测试模板不匹配的“好测试”:

public class Tests {

        @Test
        public void badTest() {

            // some code

            try {
                // some code
            } catch (Exception e) {
                // some code
            } finally {
                // some code
            }
            // some code
        }

        @Test
        public void goodTest() throws Exception {
            // some code
        }
    }

你们能给我一些线索吗?

致以最诚挚的问候,

于连。

1 个答案:

答案 0 :(得分:0)

您可以先搜索所有测试方法,然后搜索范围try-catch中的所有Previous Search Results块。这将为您提供测试方法中的所有try-catch块,这些块可能足够接近您所需的块?