0

我试图找到这样的方法:

@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 种方法相匹配。随机选择该方法的其他一些用法,我发现其他人也应该匹配该模式。(我不知道匹配的块之间有什么共同点。它们都是尝试块,但一些不匹配的块也是如此。)

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

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

4

1 回答 1

0

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

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

确保该方法也配置了出现次数 1..unlimited,否则每个类只能找到一个方法。

于 2015-06-23T19:49:30.963 回答