2016-12-11 65 views
0

作为行为测试的一部分,我需要模拟给定类中的方法调用。Java方法模拟

所以说,如果我有一个类,如:

class A { 
public void abc(){ 
    new classB().getData(); 
} 

public void xyz(boolean callabc){ 
    if (callabc) { 
     abc(); 
    } 
} 

所以,我的要求是,首先找到A类的所有方法,然后找到其方法是使该调用诸如某某呼吁ABC被调用B类getData方法。

是否有可能在Java中获取所有这些数据?

+1

嗯......看起来您会想要反射 - 我认为现在为您开始学习反射还为时尚早。但我可能是错的。 – Gendarme

+2

这不是有效的java。除了不理解这个问题。 – f1sh

+1

反射可以得到方法。我不太确定要找到其他方法的方法 –

回答

0

您可以将您的代码弄成这个样子:

public class A { 
    private final ClassB b; 

    public A(ClassB b) { 
     this.b = b; 
    } 

    public void abc(){ 
     b.getData(); 
    } 

    public void xyz(boolean callabc){ 
     if (callabc) { 
      abc(); 
     } 
    } 
} 

然后你就可以在测试过程中通过模拟实现B级。然后,您可以验证某些方法是通过与mockito库的特定参数进行模拟调用的: http://static.javadoc.io/org.mockito/mockito-core/2.3.0/org/mockito/Mockito.html#1