IntelliJ 结构搜索:在测试中尝试捕获
IntelliJ Structural Search : Try Catch in Tests
我最近从 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
块的所有 测试方法。
下面是我想用它找到的"bad tests"和"good tests"不匹配结构模板的例子:
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
}
}
你们能给我一个线索吗?
此致,
朱利安。
您可以先搜索所有测试方法,然后搜索范围 Previous Search Results
中的所有 try-catch
块。这将为您提供测试方法中的所有 try-catch
个块,这可能与您需要的足够接近?
我最近从 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
块的所有 测试方法。
下面是我想用它找到的"bad tests"和"good tests"不匹配结构模板的例子:
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
}
}
你们能给我一个线索吗?
此致,
朱利安。
您可以先搜索所有测试方法,然后搜索范围 Previous Search Results
中的所有 try-catch
块。这将为您提供测试方法中的所有 try-catch
个块,这可能与您需要的足够接近?