«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно имитировать частные методы с помощью PowerMock и Mockito?

Как эффективно имитировать частные методы с помощью PowerMock и Mockito?

Опубликовано 8 ноября 2024 г.
Просматривать:634

How to Effectively Mock Private Methods with PowerMock and Mockito?

Альтернативное решение для имитирования частных методов с помощью PowerMock

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

Как показано в предоставленном фрагменте кода, класс CodeWithPrivateMethod обладает общедоступным методом значимогоPublicApi, который вызывает частный метод doTheGamble. Чтобы имитировать поведение doTheGamble, тестовый класс CodeWithPrivateMethodTest использует PowerMock для слежки за экземпляром исходного класса и использует Mockito для указания желаемого возвращаемого значения.

В этом конкретном сценарии, когда вызывается частный метод doTheGamble с любыми строковыми и целочисленными аргументами он должен вернуть true. Это приводит к тому, что общедоступный метод значимогоPublicApi вызывает исключение RuntimeException.

Полная конфигурация теста выполняется с помощью аннотации @PrepareForTest PowerMock, которая гарантирует, что тестируемый класс подготовлен для шпионажа. Тест выполняется с использованием PowerMockRunner, который облегчает имитацию статических и частных методов.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3