gpt4 book ai didi

java - 在 JUnit 中模拟 Firebase

转载 作者:行者123 更新时间:2023-12-02 03:28:00 25 4
gpt4 key购买 nike

我正在编写一个使用 Firebase 和 RealtimeDB 的 Java 应用程序。

在编写单元测试时,我遇到了一个相当奇怪的问题,因为 Firebase 类无法加载到 JUnit 中,从而引发 NoSuchMethodError:java.lang.NoSuchMethodError:com.google.common.primitives.UnsignedInteger.asUnsigned(I)Lcom/google/common/primitives/UnsignedInteger;

我已经设法使用与项目其余部分不同的 Guava 版本将其跟踪到 Firebase,但即使我强制使用 Guava 19.0(通过 Maven 依赖项排除机制),我仍然显然是在加载 FirebaseOptions 类时出现相同的错误(确切位置:com.google.firebase.FirebaseOptions$Builder.setServiceAccount(FirebaseOptions.java:77))。

编辑:该问题仅在测试运行时出现,在运行时,Guava 库已正确加载。

有人对如何正确向 Firebase 提供 Guava 库有任何想法吗?

最佳答案

显然,解决方案是在 POM 中添加解析排除(最终的依赖关系如下

<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-server-sdk</artifactId>
<version>[3.0.0,)</version>
<exclusions>
<exclusion>
<groupId>guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>

),然后强制清除本地存储库。重新索引项目后,测试能够毫无问题地加载适当的类。

关于java - 在 JUnit 中模拟 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38524752/

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