Junit 伪JavaFX平台启动

Junit 伪JavaFX平台启动,junit,javafx,headless,Junit,Javafx,Headless,在我的项目中,我有一个测试JavaFX组件的特殊设置:首先有一个应用程序,它通常通过一个主要的视觉检查方法来启动组件。但是还有一些主要类的子类,它们是实际的JUnit测试 在测试中,我不希望在显示UI的情况下运行应用程序(测试也应该在没有窗口管理器的系统中运行,例如连续集成)。通常这会引发错误,因为平台未启动。为了防止这种情况,我呼吁: final Runnable dummyRunnable = new Runnable() { @Override public void ru

在我的项目中,我有一个测试JavaFX组件的特殊设置:首先有一个应用程序,它通常通过一个主要的视觉检查方法来启动组件。但是还有一些主要类的子类,它们是实际的JUnit测试

在测试中,我不希望在显示UI的情况下运行应用程序(测试也应该在没有窗口管理器的系统中运行,例如连续集成)。通常这会引发错误,因为平台未启动。为了防止这种情况,我呼吁:

final Runnable dummyRunnable = new Runnable() {
    @Override
    public void run() {
    System.out.println("Startup platform");
    }
};
PlatformImpl.startup(dummyRunnable);
然而,PlatformImpl是内部API(com.sun.javafx.application.PlatformImpl)。这基本上将测试与JDK的特定品牌联系起来。 为了弄清楚是否会发生这种情况,我实际上通过反射调用了该方法,因此我可以记录具体的错误情况

有没有一种方法可以达到同样的效果(运行作为应用程序子类的测试,但不调用start方法,以headless模式运行)