gpt4 book ai didi

java - assertTrue 在 JUnit 测试中给出 NPE,但文件不为空

转载 作者:行者123 更新时间:2023-11-30 10:04:07 24 4
gpt4 key购买 nike

我有一个简单的 JUnit 测试,我在其中检查图像是否为 null。该图像存在并且位于 ui 包中的 Assets 文件夹中。

这是测试:

@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 文件夹中时,这怎么可能?

JUnit test

最佳答案

在您的示例中,Gdx.files 为空,因此出现了 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

关于java - assertTrue 在 JUnit 测试中给出 NPE,但文件不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56039048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com