我正在尝试对corelibgdx应用程序的程序包进行单元测试。
模拟ShaderProgram根类的最佳方法是什么?
考虑到Libgdx测试运行程序的以下初始化,
init {
val conf = HeadlessApplicationConfiguration()
HeadlessApplication(this, conf)
Gdx.gl = mock(GL20::class.java)
Gdx.gl20 = mock(GL20::class.java)
Gdx.gl30 = mock(GL30::class.java)
Gdx.graphics = mock(Graphics::class.java)
`when`(Gdx.graphics.height).thenReturn(dimensions)
`when`(Gdx.graphics.width).thenReturn(dimensions)
}
Run Code Online (Sandbox Code Playgroud)
以及正在测试的函数(位于的子级的类中Application Listener),
override fun create() {
...
stage = Stage(ScreenViewport())
...
}
Run Code Online (Sandbox Code Playgroud)
尝试编译着色器时,Stage内部发生错误。
即,SpriteBatch.java来自com.badlogic.gdx.graphics.g2d,
ShaderProgram shader = new ShaderProgram(vertexShader, fragmentShader);
if (shader.isCompiled() == false) throw new IllegalArgumentException("Error compiling shader: " + shader.getLog());
Run Code Online (Sandbox Code Playgroud)
shader.isCompiled()似乎总是为false返回false HeadlessApplication。
我们正在寻求建立自动化UI测试,并想知道最好的方法是什么,潜在的缺陷是什么,设置成本高昂?
提前致谢.
乙
我们在MS Windows上为Linux开发了一个嵌入式Qt应用程序.目标平台是没有X-windows(framebuffer)的linux.不幸的是,Windows上的屏幕与linux上的相同屏幕看起来相当不同(更好),因为Windows有更好的字体.有没有办法强制Windows上的Qt使用Linux字体?我想实现二进制兼容性,即截图的CRC在linux和windows中都是相同的.