Я пытаюсь смоделировать классы Java3D для модульных тестов, например:
mock(VirtualUniverse.class);
или
mock(Canvas3D.class);
К сожалению, VirtualUniverse (на который также ссылается Canvas3D) имеетстатическая ссылка на MasterControl, которая включает в себя метод
static void loadLibraries(){
...
}
, который вызывается во время насмешки и пытается загрузить внешние библиотеки, и это именно то, чего я пытаюсь избежать.
хотелось бы услышать, что люди использовали в качестве общего подхода к моделированию, примененного к приложениям, использующим инфраструктуру Java3D, особенно если вы нашли удовлетворительный подход к работе с юниверсами.
Обновление:
Пара вопросов произошла после того, как задал этот вопрос.Во-первых, мы узнали больше о состоянии Java3D и JavaFX.Похоже, что работа над Java3D на данный момент прекращена в пользу сосредоточения внимания на JavaFX.Кроме того, JavaFX планируется включить Java API в 3 квартале 2011 года.Так как наш существующий код основан на сценографе, я искал другие инструменты парадигмы сценографического поиска и наткнулся на jMonkeyEngine (jME), который, похоже, будет хорошо работать для нас.
Хотя класс приложения jME предпочитает наследование над композицией(см. com.jme3.app.SimpleApplication), было достаточно легко вставить делегатор в иерархию наследования, что позволило мне создать наше собственное приложение в более подходящей TDD-форме.Кроме того, команда jME преуспела в том, чтобы избегать использования статического поведения, что опять-таки помогает в попытке смоделировать компоненты для UT.
Итак, я принимаю ответ Жолта на том основании, что он на деньгис мыслью делегации.