Общее решение, которое будет работать с любой средой тестирования (, если ваш класс не является final
), - это вручную создать свой собственный макет.
Это не использует фреймворк, поэтому он не такой элегантный, но он всегда будет работать: даже без PowerMock. Кроме того, вы можете использовать Mockito для выполнения шагов №2 и amp; # 3 для вас, если вы уже сделали шаг №1.
Чтобы издеваться над частным методом напрямую, вам нужно использовать PowerMock, как показано в другом ответе .
Аргумент interactive
не обязательно должен быть строкой; если это не так, он вычисляется, чтобы получить список аргументов для передачи функции. Таким образом, вы можете сделать что-то вроде этого:
(defun insert-foo-bar-or-baz (arg)
(interactive
(list
(completing-read "Choose one: " '("foo" "bar" "baz"))))
(insert arg))