我正在 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/