2012-02-23 2 views
1

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

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

Например:

class StaticClass { 

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

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

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

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

ответ

0

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

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

0

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