【发布时间】:2022-11-24 04:35:50
【问题描述】:
我正在尝试使用 MockBukkit 测试我的 Minecraft 插件,但是当我试图模拟服务器时(通过MockBukkit#mock())抛出一个 NPE:
java.lang.NullPointerException: Cannot invoke "org.eclipse.aether.RepositorySystem.newLocalRepositoryManager(org.eclipse.aether.RepositorySystemSession, org.eclipse.aether.repository.LocalRepository)" because "this.repository" is null
at org.bukkit.plugin.java.LibraryLoader.<init>(LibraryLoader.java:59)
at org.bukkit.plugin.java.JavaPluginLoader.<init>(JavaPluginLoader.java:73)
at be.seeseemelk.mockbukkit.plugin.PluginManagerMock.<init>(PluginManagerMock.java:90)
at be.seeseemelk.mockbukkit.ServerMock.<init>(ServerMock.java:166)
at be.seeseemelk.mockbukkit.MockBukkit.mock(MockBukkit.java:56)
在这里你可以找到我的 pom.xml:https://pastebin.com/TPjDRr9f
我的测试只包含一个带有注释 @BeforeAll 的方法,我在其中通过 MockBukkit#mock() 进行模拟。这里也提到了这个问题https://github.com/MockBukkit/MockBukkit/issues/614,但是这个问题目前处于积压状态,所以我正在尝试为此找到解决方案/解决方法。
我尝试在带有注释 @BeforeAll 的测试方法中模拟服务器:
@BeforeAll
public void setUp() {
MockBukkit.mock();
}
我希望测试能成功。
我实际上得到了一个 NPE,它的来源位于 MockBukkit 代码中。
【问题讨论】:
标签: java testing mocking bukkit