Тест Sinon / sandbox говорит, что функция никогда не вызывалась - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу написать модульный тест, который проверяет, была ли вызвана функция, но я получаю сообщение об ошибке 'submitDetails submitDetails sendEmail: AssertionError: ожидалось, что sendEmail был вызван ровно один раз, но он был вызван0 раз '

Из того, что я вижу, моя функция submitDetails.submitDetails явно выполняет функцию sendEmail.sendEmail, но она говорит, что никогда не вызывается.Я также пытался использовать «spy.called» вместо namedOnce, но получаю тот же результат.

Тестовый файл:

const submitDetails = require('../src/scripts/submitDetails')
const sendEmail = require('../src/lib/sendEmail')

describe('submitDetails', function () {
  let sandbox = null

  before(() => {
    sandbox = sinon.createSandbox()
  })

  afterEach(() => {
    sandbox.restore()
  })

  describe('submitDetails', () => {
    let mockParams, result

    beforeEach(async () => {
      sandbox.spy(sendEmail, 'sendEmail')
    })

    it('sendEmail', () => {
      expect(sendEmail.sendEmail).to.have.been.calledOnce()
    })
  })
})

SubmitDetails.js (файл, который тестируется)

const { sendEmail } = require('../lib/sendEmail')
const submitDetails = {}

submitDetails.submitDetails = query => {
  return sendEmail(query)
}

module.exports = submitDetails
...