【问题标题】:MockBukkit#mock() throwing NPEMockBukkit#mock() 投掷 NPE
【发布时间】: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


    【解决方案1】:

    所以我终于设法修复了这个错误:这是因为我的插件类没有根据 this 所必需的正确构造函数而发生的。通常,会出现一条错误消息,指出缺少此构造函数,但因为我使用了自己编写的 API,所以消息有所不同。观看此更新:https://github.com/MockBukkit/MockBukkit/issues/614

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 2014-04-27
      • 2018-11-28
      • 2018-12-10
      • 1970-01-01
      相关资源
      最近更新 更多