Есть ли хороший способ достоверно проверить результаты записи Firestore в облачной функции?Официальная документация рекомендует издеваться над каждым вызовом Firestore, но есть несколько предостережений.Наиболее важным является то, что есть несколько способов достижения аналогичных результатов.Например, эти 3 вызова приводят к одному и тому же результату:
await admin.firestore().collection('payments').add(myPayment);
await admin.firestore().collection('payments').doc().set(myPayment);
const batch = admin.firestore().batch();
batch.create(admin.firestore().collection('payments').doc(), myPayment);
await batch.commit();
Я могу вспомнить, по крайней мере, еще пару, которые дали бы точно такой же результат.Поэтому очень трудно смоделировать все вызовы, и даже если я сделаю это, тест станет слишком зависимым от реализации.Например, если код не использует пакетные записи и разработчик реорганизует код для их использования, тест необходимо будет переписать, даже если окончательный результат не изменится.Или даже если они заменяют add на набор doc ()., Как в первых двух примерах.И создание тестов, которые рассматривают все возможные реализации, будет сложным, хрупким и очень многословным.
Один из вариантов - использовать эмулятор или даже тестовый проект Firebase, но это вызовет дополнительный уровень сложности, нижепроизводительность выполнения и ввести внешние зависимости, так что это будет на самом деле интеграционный тест.
Есть ли лучшее решение, которого я не вижу?