提问者:小点点

IntelliJ结构搜索:在测试中尝试Catch


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

我想确定所有包含<code>try的测试方法。。。接住最后是块,以便删除它们。替换模板是第二个目标,首先我想了解如何找到它们。

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

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

我还使用了预定义的模板来查找所有<code>try。。。捕获块,我添加了最后检测:

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

但是我不知道如何进一步混合这两个模板,以便找到所有包含< code>try的测试方法...捕捉...最后块。

以下是我想用它找到的“坏测试”的例子,以及不应该与结构模板匹配的“好测试”:

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

匿名用户

您可以先搜索所有测试方法,然后搜索“以前的搜索结果”范围内的所有 try-catch 块。这将在测试方法中为您提供所有 try-catch 块,这些块可能足够接近您需要的?