2009-06-09 2 views
1

Я экспериментировал с jMock в качестве моей смешной рамки для своего проекта. Я пришел в ситуацию, когда мне нужно издеваться над классом и интерфейсом. Я использовал ClassImposteriser.INSTANCE, чтобы инициировать самозванец контекста.jMock Mocking Classes and Interface

Предполагает класс 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

+0

, пожалуйста, добавьте примеры кода, чтобы сделать ваш вопрос более ясным. Возможно, я могу вам помочь .. – jrharshath

ответ

6

Код, который вы представляете, не будет компилироваться (это должен быть 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 { 
    } 
}