Cal*_*r41 11 java junit unit-testing libgdx
我正在写一个关于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);
Run Code Online (Sandbox Code Playgroud)
并在tearDownAfterClass()内调用:
Gfx.app.exit()
Run Code Online (Sandbox Code Playgroud)
但它确实创建了一个我不需要的窗口,而且当我需要的是文件处理初始化时,它似乎有点过分了.有没有更好的方法来初始化libGDX组件而不创建整个应用程序对象?谢谢.
回过头来看(感谢评论中的Sam),我意识到需要GL访问(加载资产需要它),但这种方法似乎不起作用:图形库似乎没有被初始化.GDX文档没有帮助.任何线索?
Jyr*_*117 11
这个问题没有得到解答,我很惊讶没有人指出无头后端,这是这种情况的理想选择.将此与您最喜爱的模拟库相结合,您应该很高兴.
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);
}
}
Run Code Online (Sandbox Code Playgroud)