IDEA结构搜索 - 在方法

时间:2015-06-23 06:05:51

标签: java intellij-idea structural-search

我正在尝试找到这样的方法:

@Test
public void testStuff()
{
    doStuff();
    doOtherStuff();

    mockery.assertIsSatisfied();
}

目标是移除mockery.assertIsSatisfied()。我不能只删除对它的所有调用,因为有时它在方法的中间或循环的结尾,这似乎是合理的。当然,我们使用JUnit @Rule来自动调用它,因此在每次测试结束时使用它是多余的。

我认为这是正确的模板:

@Test
public void $testMethod$() throws Exception
{
    $Statements$;    // configured this as 1..many
    mockery.assertIsSatisfied();
}

这与该方法的400多个用法中的大约2种方法相匹配。随机选择该方法的一些其他用法,我发现其他人也应该匹配该模式。 (我无法弄清楚那些匹配的东西之间有什么共同之处。它们都是试块,但也有一些不匹配。)

那么这样做的正确方法是什么?

编辑:我刚刚注意到我已经将throws Exception硬编码到这个上,所以我重新执行了没有它的搜索,这得到0结果。万一有人在想。

1 个答案:

答案 0 :(得分:0)

(目前)无法使用裸方法作为模式。要搜索一个方法,你需要用这样的类围绕它:

class $Class$ {
    @Test
    public void $testMethod$() // 1..unlimited
    {
        $Statements$;    // 1..unlimited
        mockery.assertIsSatisfied();
    }
}

请确保该方法还配置了出现1..unlimited,或者每个类只能找到一个方法。