我正在通过libgdx编写游戏;我正在使用junit框架来简化代码的单元测试。现在有一部分代码(一个地图生成器,一个将我自己的地图格式转换为TiledMap的类…),我需要对其进行彻底的测试,但是它使用libgdx代码:从文件处理到资产加载。我不打算以这种方式测试实际的图形输出或游戏本身:但是我想测试单个组件(计算,资产访问…),以避免出现明显的错误。
我尝试在“ setUpBeforeClass”方法中执行以下操作:
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration(); cfg.useGL20 = true; cfg.width = 480; cfg.height = 320; cfg.resizable = true; LwjglApplication app = new LwjglApplication( new TestApplicationListener(), cfg);
并在tearDownAfterClass()中调用:
Gfx.app.exit()
但是它确实创建了一个我不需要的窗口,并且当我需要的只是初始化文件处理时,似乎显得过大了。有没有更好的方法来初始化libGDX组件而不创建整个应用程序对象?谢谢。
回到上面(感谢Sam的评论),我意识到需要GL访问(需要加载资产),但是这种方法似乎行不通:图形库似乎没有初始化。GDX文档没有帮助。有什么线索吗?
这个问题尚未得到解答,我很惊讶没有人指出无头后端,这对于这种情况是理想的。将此与您最喜欢的模拟库结合起来,您应该会很高兴。
public class HeadlessLauncher { public static void main(final String[] args) { final HeadlessApplicationConfiguration config = new HeadlessApplicationConfiguration(); config.renderInterval = Globals.TICK_RATE; // Likely want 1f/60 for 60 fps new HeadlessApplication(new MyApplication(), config); } }