【发布时间】:2018-08-07 13:51:27
【问题描述】:
我正在尝试对我的 libgdx 应用程序的 core 包进行单元测试。
模拟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)
}
以及被测函数(在Application Listener的子类中),
override fun create() {
...
stage = Stage(ScreenViewport())
...
}
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());
shader.isCompiled() 似乎总是为 HeadlessApplication 返回 false。
【问题讨论】:
标签: unit-testing kotlin libgdx