Можно ли использовать PowerMock без аннотаций? - PullRequest
2 голосов
/ 08 января 2012

Я пытаюсь использовать PowerMock в качестве библиотеки в другом приложении.Есть ли способ использовать его для насмешки вызова статического метода без использования аннотаций (я в Clojure, который на самом деле не делает аннотации)

Ответы [ 2 ]

2 голосов
/ 08 января 2012

Согласно поддержке powermock и этого блога , я думаю, что нет способа избежать аннотаций в тесте.Я думаю, нам нужно @PrepareForTest(StaticClass.class) однако.Поэтому я считаю, что невозможно избежать @PrepareForTest по крайней мере.Может быть, я не прав, но просто подумал поделиться тем, что нашел.

0 голосов
/ 02 февраля 2018

На самом деле это возможно, хотя путь к окончательному решению болезненный.

Средство запуска PowerMock просто инициализирует среду тестирования в другом загрузчике классов, в котором классы, указанные в аннотации PrepareForTest, подправлены Javassist.Предполагая, что вы имитируете работу загрузчика классов и сами вызываете Javassist, вы можете достичь того же эффекта.

В качестве примера я использовал PowerMock (внутреннее устройство без аннотаций), чтобы найти имя метода для данной ссылки на метод.Дополнительную информацию можно найти в моем блоге (на чешском языке, с рабочими примерами).Я подчеркиваю, что такое использование является только экспериментальным и не подходит для производственного использования.

...