#javascript #firebase #google-cloud-functions
#javascript #firebase #google-cloud-функции
Вопрос:
У меня есть локальная функция, которая вызывается следующим образом:
exports.testFunction = functions.pubsub
.schedule(schedule)
.onRun(() => test.scraper('123'))
Однако test.scraper()
это не функция HTTPS, это просто обычная функция.
Как я могу протестировать ее с помощью firebase без необходимости оборачивать ее в вызываемую функцию https? Должен ли я использовать оболочку функций?
Спасибо.
Комментарии:
1. Похоже, вам просто нужно применить стандартную среду тестирования JavaScript, которая работает полностью независимо от облачных функций.
Ответ №1:
Как сказал Дуг, вы можете протестировать это отдельно, если это то, что вам нужно. Однако, согласно официальной документации, вы также можете использовать автономные модульные тесты, если это подходит вашему рабочему процессу. Вам все равно придется обернуть некоторые функции, но это удовлетворяет тестированию.
Пример из статьи с заглушенными данными и Sinon:
// Listens for new messages added to /messages/:pushId/original and creates an
// uppercase version of the message to /messages/:pushId/uppercase
exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
.onCreate((snapshot, context) => {
// Grab the current value of what was written to the Realtime Database.
const original = snapshot.val();
console.log('Uppercasing', context.params.pushId, original);
const uppercase = original.toUpperCase();
// You must return a Promise when performing asynchronous tasks inside a Functions such as
// writing to the Firebase Realtime Database.
// Setting an "uppercase" sibling in the Realtime Database returns a Promise.
return snapshot.ref.parent.child('uppercase').set(uppercase);
});