Я работаю над большим проектом Android, который использует Gson. Метод fromJson()
называется десятками раз во многих файлах. При каждом вызове метода мне нужно предоставить некоторые специальные тесты.Как переопределить методы библиотеки в Java?
Вместо того, чтобы проходить и повторять тесты каждый раз, когда этот метод используется, я хотел бы следовать доктрине DRY и просто переопределить метод fromJson()
.
Моя первая мысль - создать дочерний класс Gson и переопределить метод, но мне все равно придется делать десятки (возможно, сотни) изменений, чтобы сделать эту работу. Но даже если бы я был готов выполнить эту работу, Gson final
и, следовательно, не может быть расширен.
Вторая мысль: возможно, будет возможно изменить код библиотеки Gson. Но я не хочу идти по этому маршруту, поскольку я боюсь, что могу сломать то, что в противном случае работает отлично.
Это область Java, с которой я никогда не отваживался. У кого-нибудь есть предложения?
Не могли бы вы использовать [Aspectj] (https://eclipse.org/aspectj/)? –
Try Spy from Mockito: http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/Spy.html - вы можете переопределить именно один метод, добавить туда некоторую логику, а затем вызвать реальный метод , – user3707125
Я не использовал ни Аспект, ни Мокито. Я не хочу добавлять еще одну библиотеку в этот проект, но я потрачу час, изучая эти возможности. –