2017-03-22 72 views
1

是否有可能嘲笑超类方法调用?我看过很多帖子,但他们要么不相关,要么使用不同的测试框架。使用easymock嘲笑超级方法调用

easymock有可能吗?

如果不是,还有什么其他的框架可以让我做到这一点?

+0

如果不是,怎么我可以嘲笑使用其他框架? – Rajeev

回答

0

不,它不是。我不认为这是与其他框架。这将需要基类的字节码操作。所以也许Powermock,但我不确定。

但是,我从来没有必要在20年内这样做。一般来说,这意味着模板模式的一个不好的实现。

因此,而不是像

public void foo() { 
    // do stuff 
    super.foo(); // don't forget to call super 
    // do some other stuff 
} 

您做的更好

基类:

public void foo() { 
    doBeforeFoo(); 
    // ... stuff that is in super 
    doAfterFoo(); 
} 

,然后填写在子类中的孔

+0

感谢回答@ Henr,y和你建议的方式也是对的,但我不应该触摸我想要的代码,如果可能的话。 – Rajeev

+0

我尝试过使用easymock的createmock构建器方法,并且我在能够在期望中放入相同参数的情况下取得了进展。在方法调用时正在传递的调用。意思是当参数匹配它时被嘲笑..并且规则还说参数化嘲笑..现在我的问题是我可以用一个示例代码做到这一点,但是当与Project m集成时不能得到相同的参数..所以它给了缺少的行为定义例外,据我了解。 – Rajeev