我正在尝试找到这样的方法:
@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结果。万一有人在想。
答案 0 :(得分:0)
(目前)无法使用裸方法作为模式。要搜索一个方法,你需要用这样的类围绕它:
class $Class$ {
@Test
public void $testMethod$() // 1..unlimited
{
$Statements$; // 1..unlimited
mockery.assertIsSatisfied();
}
}
请确保该方法还配置了出现1..unlimited,或者每个类只能找到一个方法。