java - Cloud Firestore 单元测试 Java

标签 java spring-boot google-cloud-firestore mockito junit5

我正在 Spring Boot 中创建 REST API,但我一直对我的服务进行单元测试,该服务会调用我的 firestore 数据库。我正在尝试模拟我的 Firestore 数据库,这样我就不会在测试过程中向我的 Firestore 数据库添加不必要的数据。但是,当我尝试在模拟的 Firestore 对象上 stub 响应时,我收到了空指针异常。我正在使用 JUnit 5 并通过以下方式模拟 Firestore 类

@Mock
private Firestore db;

@InjectMocks
private ProductsService productsService;

在我的测试中,我通过以下方式 stub Firestore 对象的方法的响应

// Getting a null pointer exception here
when(db.collection("products").add(productToCreate).get()).thenReturn(any(DocumentReference.class));

最佳答案

您不仅需要模拟 Firestore,还需要模拟来自它的每个方法调用链中返回的每个对象。模拟并不“深入”,并且不知道如何为该模拟上的方法生成更多模拟对象。您必须分别告诉它每个方法调用返回什么。

关于java - Cloud Firestore 单元测试 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58713663/

相关文章:

java - 无法使用我的服务对象连接到我的谷歌端点

javascript - Spring Boot 与 microsoft sql server 的多数据库配置

java - Spring Boot 2.2,JPA > 如果第二个字母大写,则无法定位属性

java - 编码 HttpResponse UTF-8

java - 使用可注入(inject)单例

java - 删除重复的值_stack&array

tomcat - Spring boot Tomcat – 启用/禁用目录列表

firebase - 定价 : is multiple field changes in a firestore document cache seen as a single write when device is online?

sorting - Firestore 分页 - 是否有与 firebase 的 limitToLast 兼容的查询?

swift - 高效获取评论集合查询的用户信息