Класс частичного пересмешивания с несколькими статическими методами с GMock - PullRequest
1 голос
/ 24 февраля 2012

Я использую GMock для добавления модульного тестирования в наши существующие проекты Java.У нас есть несколько мест, где методы, которые должны быть проверены, являются статическими методами, которые используют дополнительные статические методы в методе, который мы хотим протестировать.

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

Например:

    class StaticClass {

      static void method(String one) {
          method2()
      }

      static void method(String one, String two) {
          ...
      }
    }

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

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

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

В Gmock он высмеивает статические методы и сопоставляет ожидания в соответствии с их именами. Это означает, что вы не можете смоделировать один перегруженный метод, но не другой.

То же самое с MOP Groovy.

0 голосов
/ 24 февраля 2012

Хотя это не касается конкретно GMock, вы можете расширить StaticClass внутри своего тестового файла и переопределить там методы

...