正确使用'stub'

时间:2011-05-27 16:44:39

标签: junit easymock powermock

我正在尝试测试一个在类中调用其他几个方法的方法。我希望其他方法被删除,这样它们就不会被执行。我原以为使用'stub'是一个简单的问题。例如:

class Fubar {  
void fu() {  
    // . . .  
    bar();  
}  

void bar() {  
    // . . .  
}  

void testFu() {  
    Fubar fubar = new Fubar();  
    stub (method (Fubar.class, "bar"));  

    replay();  

    fubar.fu();  

    verifyAll();  
}  

但这似乎不起作用。当我预计它基本上是一个无操作时,它在'bar'方法内终止。我使用不正确吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您的方法的主要问题是您的fubar实例,该实例正在测试中,与您的存根无关。

我建议您use createPartialMock(),它允许您创建Fubar的新实例,并在那里仅模拟bar()方法。这样,您就可以测试fubar实例(由createPartialMock()生成)并记录bar()的行为。