我有一个简单的JUnit测试,其中检查图像是否为空。该图像存在并且位于ui程序包中我的资产文件夹中。
这是测试:
@Test
public void testCreate() throws Exception {
assertTrue(Gdx.files.internal("ui/back.png").exists());
}
这是我得到的例外:
java.lang.NullPointerException
at com.fantasticfeasts.game.Teamkofigeditor.FantasticFeastsGameTest.testCreate(FantasticFeastsGameTest.java:35)
当图像存在并且位于ui文件夹中怎么办?
答案 0 :(得分:1)
在您的示例中,Gdx.files为null,因此出现了NPE。
您的问题是Gdx。只有从LibGdx启动LwjglApplication或HeadlessApplication之类的应用程序后,这些工具才可用。
因为首先启动Application实例后,LibGdx将加载库并进行初始化:Gdx.app,Gdx.files,Gdx.graphics,Gdx.audio,Gdx.gl等。
要测试具有Gdx功能的LibGdx项目,请阅读以下内容:http://manabreak.eu/java/2016/10/21/unittesting-libgdx.html
以下是使用Gdx.files进行单元测试的示例:https://github.com/TomGrill/gdx-testing/tree/master/tests/src/de/tomgrill/gdxtesting
答案 1 :(得分:0)
最有可能的当前工作目录不是您认为的