Облачное Firestore модульное тестирование Java - PullRequest
1 голос
/ 05 ноября 2019

Я создаю REST API в Spring Boot, и я застрял с модульным тестированием моего сервиса, который выполняет вызовы к моей базе данных firestore. Я пытаюсь смоделировать свою базу данных Firestore, чтобы не добавлять ненужные данные в свою базу данных firestore как часть моих тестов. Однако, когда я пытаюсь заглушить ответы на поддельном объекте Firestore, я получаю исключение нулевого указателя. Я использую JUnit 5 и насмехаюсь над классом Firestore с помощью

@Mock
private Firestore db;

@InjectMocks
private ProductsService productsService;

. В моем тесте я передаю ответ от метода объекта Firestore на

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

1 Ответ

1 голос
/ 05 ноября 2019

Вам придется высмеивать не только Firestore, но и каждый объект, возвращаемый в каждой цепочке вызовов методов, которые из него приходят. Мок не являются "глубокими" и не знают, как генерировать больше фиктивных объектов для методов этого макета. Вы должны указать, что нужно возвращать для каждого вызова метода в отдельности.

...