Модульное тестирование OSGi-компонентов

В настоящее время я думаю о «Как спроектировать компонент OSGi, чтобы было легко писать тесты для него с помощью таких фреймворков, как jUnit и Mockito» .

Имитация взаимозависимостей между пакетами довольно проста, поскольку OSGi усиливает DIP (Принцип инверсии зависимостей) и обычно существуют инжекторные методы (например, установщик).
Но как насчет внутренних зависимостей пакета?

Например, посмотрите на этот случай . Теперь я хочу перенести это в контекст OSGi ... Изображение, мы хотим предоставить любой вид сетевого протокола в качестве декларативной службы на платформе OSGi и хотим написать модульные тесты для тестирования нижнего сетевого кода, который напрямую взаимодействует с объект сокета.

Если бы мы реорганизовали создание сокета в отдельный, но все же связанный внутренний класс POJO (Обычный старый объект Java) , как мы должны внедрить его в реализацию протокола?

  • В модульном тесте мы могли бы просто использовать метод установки, но кто будет делать это в контейнере OSGi за нас?
  • Создание подкласса тестируемого класса и перезапись метода-создателя будет работать, только если тестируемый класс не объявлен как окончательный.

13
задан Cody Gray 7 March 2019 в 04:11
поделиться