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