Является ли jest.mock () эквивалентным sinon.stub () - PullRequest
0 голосов
/ 04 декабря 2018

Во всех примерах используется Firebase SDK для облачных функций Quickstart, Mocha / Chai и Sinon ... Попытка использовать Jest вместо этого, мне интересно, каков правильный эквивалент sinon.stub ()?

Я попробовал следующее (только для тестирования принятия jest.mock () ...

const sinon = require('sinon');

const jest = require('jest');

describe('Cloud Functions', () => {

    before(() => {
      let myFunctions, adminInitStub;
      let adminInitMock;

      adminInitStub = sinon.stub(admin, 'initializeApp');
      adminInitMock = jest.mock(admin, 'initializeApp');

      myFunctions = require('../index');
      myFunctions = require('../index');

, но я получаю сообщение об ошибке:

1, сбой

1) CloudХук функции "прежде всего": TypeError: jest.mock не является функцией

Я где-то ошибся ... но я не могу получить это спасибо за отзыв

1 Ответ

0 голосов
/ 04 декабря 2018

решено ...

получил четкое понимание от mocking-es-and-commonjs-modules-with-jest-mock

However, when using export with require we would see an error such as:

TypeError: ourCode is not a function

The CommonJS module does not understand the ES Module it is trying to require. This is easily fixed, by adding a .functionNameBeingExported to the require, which for a default export is default.

externalModule.js
const ourCode = () => 'result';
export default ourCode;

testSubject.js
const ourCode = require('./externalModule').default;
// use ourCode()
...