У меня есть два класса в качестве входных данных и вы хотите издеваться над ними друг с другом. Это используется, чтобы быть очень простым в JMockit, один раз называетсяMocking класс с существующим классом в JMockit (замена для `redefineMethods`)
Mockit.redefineMethods(originalClass, mockingClass);
Но в версии 0.999 этот метод устаревшим был удален. Мне нужны функции более новой версии JMockit, поэтому я больше не могу использовать старые версии.
Я думаю, из документации в сообщении об устаревании, что использование предлагаемого «современного» способа сделать это было бы определить MockUp<originalClass>
и использовать его как mockingClass
.
К сожалению, я получаю оба значения в качестве входных параметров во время выполнения (объявлено как class<?>
), поэтому создание класса не является вариантом.
Есть ли способ подражать тому, что Mockit.redefineMethods()
сделал до версии 0.999, даже если это может быть не самое изящное решение для решения этой проблемы?
EDIT
Что я получаю в качестве входных данных является Map<Class<?>, Class<?>> mockedClasses
классов будут издеваться, указывающими на классы насмешливых их. Это затем итерации и передается Mockit
:
for (Map.Entry<Class<?>, Class<?>> entry : mockedClasses.entrySet()) {
Mockit.redefineMethods(entry.getKey(), entry.getValue());
}
После этого тестовый код выполняется, то насмешки снова отключается, используя restoreOriginalDefinition()
вместо redefineMethods()
аналогичным образом.
Не уверен, что это то, что вам нужно, но есть конструктор 'MockUp (Class)', который получает класс, который будет издеваться. В противном случае мне нужно будет увидеть пример теста, потому что 'MockUp' предоставляет все, что делало Mockit.redefineMethods в прошлом. –
Спасибо, я попробую завтра. И если мне это не удастся, я попытаюсь приготовить минимальный пример и опубликовать это здесь. – Alfe
С другой стороны, нет, это не работает для меня, извините. У меня уже есть * оба класса, один из которых насмехается и насмехается. Оба являются произвольными и моими вводами (и я не могу легко изменить это). Ни один из них (в настоящее время) не расширяет 'MockUp', и я не могу расширить класс, который я получаю в качестве значения, с помощью' MockUp' (по крайней мере, я не знаю, как это сделать). Но, может быть, есть решения? – Alfe