我正在尝试对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。
尝试将我的APK作为Google Play上的alpha版本上传时,我遇到以下消息.
' 你上传了一个可调试的APK.出于安全原因,您需要先禁用调试,然后才能在Google Play中发布."
在我的gradle中,我已经配置了签名配置和构建类型,如下所示:
signingConfigs {
release {
storeFile file("PATH TO KEY STORE")
storePassword "STORE PASSWORD"
keyAlias "ALIAS"
keyPassword "PASSWORD"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
testCoverageEnabled true
debuggable false
}
debug { testCoverageEnabled true }
}
Run Code Online (Sandbox Code Playgroud)
此外,我一直在使用的jarsigner我的APK签署,该CN不确认不含有CN=Android Debug.
APK的清单不包含该属性android:debuggable.
我构建的应用程序是具有以下依赖项的Kotlin应用程序:
Android支持v13 27.0.2
Android支持注释27.0.2
Android支持约束布局1.0.2
Junit 4.12
Mockito 2.15.0
Robolectric 3.7
Android支持Test Runner 1.0.1
Android支持测试Espresso Core 3.0.1
我试图上传通过gradle命令行生成的APK(即gradle构建)以及使用Build,Generate Signed …