Я использую GMock, чтобы добавить модульное тестирование в наши существующие проекты Java. У нас есть несколько мест, где методы, которые необходимо протестировать, являются статическими методами, которые используют дополнительные статические методы внутри метода, который мы хотим протестировать.
Я хотел бы иметь возможность частично издеваться над классом, практически всеми статическими методами класса, кроме начальной точки входа для тестирования.
Например:
class StaticClass {
static void method(String one) {
method2()
}
static void method(String one, String two) {
...
}
}
Я надеюсь, что смогу смоделировать второй статический метод, но как только я это сделаю, метод (String) станет MIA, и выполнение теста завершится ошибкой с исключением ожидания. Есть ли способ частично издеваться над классом, сохраняя функциональность первого метода, но издеваясь над статическим доступом второго метода?
Я также пытался использовать программирование метакласса для имитации метода, но если я устанавливаю метод равным закрытию, первый метод снова становится MIA. Не уверен, как это сделать с перегруженными методами. Любые идеи?