Me gustaría saber, ¿dónde se ejecuta la prueba unitaria de la función de la nube, cuando se ejecuta con un corredor de prueba (por ejemplo, mocha o broma )?
npm run testFYI, no estoy ejecutando dentro de ninguno de los emuladores de Firebase
Cuando ejecuto el uso de mocha , puede crear una escritura en Firestore (estoy seguro de que jest hará lo mismo), pero no puedo ver los nombres de las funciones en los registros, lo que significa que la función se ejecutó localmente dentro del corredor de prueba y escribió a firestore db.
¿Eso significa que las funciones de la nube a las que se puede llamar https no se pueden llamar desde el backend de Firebase usando el corredor de prueba? Lo he intentado en ambos sentidos: es llamar directamente a las funciones y envolverlas usando el método wrap() proporcionado por la biblioteca firebase-functions-test. ambas veces la función se ejecutó localmente.
llamada directa:
..... ..... ..... funcName.run({foo:"bar"}, { auth: { uid: "ABC" } }); ..... ..... .....usando envoltura:
..... ..... ..... const projectConfig = { projectId: 'my-project', databaseURL: 'https://my-project.firebaseio.com' }; const test = require('firebase-functions-test')(projectConfig, './service-account-key.json'); wrapped = test.wrap(funcName); expect( wrapped( { foo: "bar" }, { auth: { uid: "ABC" } } ) ).to.contain('foobar'); ..... ..... .....¿Eso significa que las funciones de la nube a las que se puede llamar https no se pueden llamar desde el backend de Firebase usando el corredor de prueba?
El marco firebase-functions-test está diseñado para ejecutar todo localmente, por lo que obtiene una ejecución predecible y confiable sin depender de alguna conexión de red externa. No ejecutará nada remotamente.
Si desea ejecutar una función invocable que se implementó en algún lugar, puede escribir código para invocarla directamente mediante cualquier biblioteca de cliente HTTP normal y la información del protocolo onCall proporcionada en la documentación .