Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Junit 使用';存根';正确地_Junit_Easymock_Powermock - Fatal编程技术网

Junit 使用';存根';正确地

Junit 使用';存根';正确地,junit,easymock,powermock,Junit,Easymock,Powermock,我试图测试一个调用类中其他几个方法的方法。我希望其他方法被删除,这样它们就不会被执行。我原以为使用“存根”很简单。例如: class Fubar { void fu() { // . . . bar(); } void bar() { // . . . } void testFu() { Fubar fubar = new Fubar(); stub (method (Fubar.class, "bar"));

我试图测试一个调用类中其他几个方法的方法。我希望其他方法被删除,这样它们就不会被执行。我原以为使用“存根”很简单。例如:

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

void bar() {  
    // . . .  
}  

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

    replay();  

    fubar.fu();  

    verifyAll();  
}  
但这似乎不起作用。它在“bar”方法中终止,而我原本预计它基本上是一个no-op。我是否使用了错误的方法


谢谢

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


我建议您使用它来创建
Fubar
和mock only
bar()
方法的新实例。这样你就可以测试你的
fubar
实例(由
createPartialMock()
生成)并记录
bar()的行为

当你删除重播方法时会发生什么?我真的做不到。这里有很多模拟的东西,比我在这里展示的要多得多,如果我把它们去掉,我会得到一堆我不想要的对象的实际执行。有趣。我要试一试。谢谢