Java Easymock存根辅助方法

Java Easymock存根辅助方法,java,methods,helper,easymock,stub,Java,Methods,Helper,Easymock,Stub,我试图找到一种方法,使用EasyMock只测试类Foo中的一个方法execute(),除了该方法调用模拟对象中的一个方法的次数外,忽略该方法execute()调用时,同一类Foo的助手方法调用模拟对象中的同一方法的次数。因为我有其他测试方法来测试helper方法,并且只想将测试限制在一个方法上,而不是在同一个类中调用其他方法 按照我现在的方式,测试将失败,因为execute()、method1()和method2()执行cust.getAccount()的次数超过1次 例如: 正在测试的类 我已

我试图找到一种方法,使用EasyMock只测试类Foo中的一个方法execute(),除了该方法调用模拟对象中的一个方法的次数外,忽略该方法execute()调用时,同一类Foo的助手方法调用模拟对象中的同一方法的次数。因为我有其他测试方法来测试helper方法,并且只想将测试限制在一个方法上,而不是在同一个类中调用其他方法

按照我现在的方式,测试将失败,因为execute()、method1()和method2()执行cust.getAccount()的次数超过1次

例如:

正在测试的类 我已经研究了andStubReturn(),但还没有完全弄清楚


感谢大家的指导。

EasyMock允许通过
EasyMock.createMockBuilder
方法进行部分模拟。通过流畅的界面,您可以定义要模拟的方法

别忘了调用EasyMock。最后验证一下,否则你将无法捕捉到预期的方法调用,但实际上从未调用过该方法的情况

@Test
public void testExecute(){
    Customer custMock = createMock(Customer.class);     
    expect(custMock.getAccount()).andReturn("1111").times(1);
    replay(custMock);

    Foo foo = EasyMock.createMockBuilder(Foo.class)
                      .addMockedMethod("method1")
                      .addMockedMethod("method2")
                      .createMock();
    foo.execute();

    verify(custMock);
}

您可以将
method1
method2
移动到另一个类,然后可以对其进行模拟。谢谢eee。我还找到了答案。经过一些调整,它正在做我需要的事情。
public class TestFoo{

    @Test
    public void testExecute(){
        Customer custMock = createMock(Customer.class);     
        expect(custMock.getAccount()).andReturn("1111").times(1);
        replay(custMock);

        Foo foo = new Foo();
        foo.execute();
    }
}
@Test
public void testExecute(){
    Customer custMock = createMock(Customer.class);     
    expect(custMock.getAccount()).andReturn("1111").times(1);
    replay(custMock);

    Foo foo = EasyMock.createMockBuilder(Foo.class)
                      .addMockedMethod("method1")
                      .addMockedMethod("method2")
                      .createMock();
    foo.execute();

    verify(custMock);
}