5

我正在试验 jMock 作为我项目的模拟框架。我遇到了一种情况,我需要同时模拟一个类和一个接口。我用ClassImposteriser.INSTANCE来启动上下文的冒名顶替者。

假设要模拟一个类Validator和一个接口。Person当我要模拟接口Person时,我遇到了一个问题NoClassFoundDefError。当我嘲笑班级Validator时,没有问题。

我需要那个类和接口,但我无法解决问题。请帮忙。

代码示例:

嘲讽

private Mockery context = new JUnit4Mockery() {{ setImposteriser(ClassImposteriser.Class) }};

班级 :

private Validator validator;

界面 :

private Person person;

内部测试方法

validator = context.Mock(Validator.class);----> 工作

person = context.Mock(Person.class);---->NoClassFoundDefError

4

1 回答 1

12

您提供的代码不会编译(它应该是 ClassImposteriser.INSTANCE)。下面的示例代码似乎工作正常。也许您可以提供更多详细信息?

public class Example {
    private Mockery context = new JUnit4Mockery() {
    {
        setImposteriser(ClassImposteriser.INSTANCE);
    }
    };

    @Test
    public void testStuff() {
    Validator validator = context.mock(Validator.class);
    Person person = context.mock(Person.class);

    // do some stuff...
    }

    public static interface Person {
    }

    public static class Validator {
    }
}
于 2009-06-19T20:02:44.920 回答