Почему PowerMock пытается загрузить файл server.xml, если статический класс отключен?

1

Я пытаюсь выполнить единый тест кода, который занимается журналом сообщений, который привносит большую экологическую зависимость. Этот Message Logger - это структура, используемая всеми разработчиками разных команд. Я использовал PowerMock для того же самого, поскольку класс Logging является статическим классом.

Хотя тест Junit Unit запускается зеленым после использования Power Mock, он все еще пытается загрузить файл server.xml.

Вызов Класса выглядит следующим образом

Групповые тесты Класс → Класс статического регистратора calls-> Класс статической среды.

Этот класс Static Environment относится к загрузке и анализу файла server.xml.

Я также пробовал следующее, но даже тогда его tring для загрузки xml файла:

@RunWith(PowerMockRunner.class)

@PrepareForTest({Logger.class,EnvFunctions.class})

PowerMockito.mockStatic(Logger.class);

PowerMockito.mockStatic(EnvFunctions.class);

Нужно ли мне делать какую-то дополнительную работу, чтобы больше не пытаться загрузить этот файл?

Я являюсь tyring, чтобы высмеять статический класс void и попытался использовать doNothing и подавить. но не работает

doNothing.when(Logger.class);

suppress(everythingDeclaredIn(Logger.class));
Теги:
unit-testing
powermock
logging
junit

1 ответ

1
Лучший ответ

Спасибо за ответ.

Я смог решить это с помощью приведенного выше объяснения

Он пытался загрузить файл server.xml, поскольку у Logger.class есть статический блок инициализатора, который вызывал другой статический метод, связанный с загрузкой xml файла.

@SuppressStaticInitialization Для аннотации для powermock сделал трюк

@RunWith(PowerMockRunner.class)

@PrepareForTest({Logger.class})

@SuppressStaticInitializationFor("org.mycompany.Logger")
public Class A{
PowerMockito.mockStatic(Logger.class);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню