Метод насмешливого статического вакуума и изменение его поведения

1

У меня есть статический метод void из другого класса, который вызывается по моему коду как какой-то регистратор. Чтобы автоматически проверить различные варианты использования моего кода, я думал о проверке журналов системы, созданной таким методом.

Я думал, что он издевается над этим классом и перезаписывает поведение метода, чтобы он выводил на System.err. Также, перенаправляя System.err как описано здесь, чтобы я мог легко проверить правильность функционирования кода.

Я не знаю, как переопределить стандартное поведение метода, чтобы он делал что-то (печать на stderr) вместо того, что он обычно делает (не издеваясь) или ничего (что я получаю от использования, when(...).thenReturn(...))

  • 0
    Не проверяйте вывод журнала, если это не то, что вы действительно хотите проверить. Почему бы не проверить поведение метода?
  • 0
    Поведение метода очень сложно проверить: он подключается к серверу, отправляет сообщение и отображает его в графическом интерфейсе, но я не хочу тестировать графический интерфейс.
Показать ещё 1 комментарий
Теги:
powermock
junit
mockito
mocking

1 ответ

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

Поверьте мне, издевательский статический метод - не лучший способ.

Наверное, это возможно, например, с PowerMock (она заменит загрузчик классов под капотом), но тем не менее это обескураживает.

  • 2
    Аминь. Мы использовали PowerMock, и это только доставило нам массу неприятностей - и еще больше неприятностей, когда мы решили удалить его и пришлось менять сотни тестов.

Ещё вопросы

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