如何使用EasyMock从父类模拟方法

时间:2013-06-04 16:06:55

标签: java superclass easymock

public abstract class A{
    public int methodInA(String a){
         return 0;
    }
}

public class B extends A{
    String a = "ANYTHING";
    public void main(){
        int b = super.methodInA(a);
    }
}

这段代码只是一个例子。我正在尝试测试B,并希望使用来自methodINA的参数来模拟方法B。我可以用EasyMock做到这一点,如果是这样的话?

1 个答案:

答案 0 :(得分:-1)

这不是嘲笑的方法,你应该嘲笑方法main,但这会使测试变得毫无意义,因为你不会只测试EasyMock的实际代码。

当您想要控制被测试对象使用的对象的行为时,会使用EasyMock(以及一般的模拟)。

在您的情况下,您唯一的选择是在测试中继承B,例如:

@Test
public void testSomething()
{
  final int expected = 5;

  B b = new B()
  {
    public int methodInA(String a)
    {
      return expected;
    }
  };

  b.main();

  //Add assertions here.
}