используя Sinon, чтобы издеваться над базой данных Мангуста - PullRequest
0 голосов
/ 21 октября 2019

Я проверяю некоторые ошибки, которые обнаруживаются в некоторых тестах. Обновлено!

Пакет mongoose npm версии 5.5.5

Я удалил макеты, которые не использовались правильно, например, они вызывали chain('sort')без использования вызова withArgs

.withArgs('-date')

Это избавило от сообщений об ошибках, заявляющих следующее:

 TypeError: Cannot read property 'events' of undefined

Теперь, однако, я получаю новые ошибки

   should made Mongoose document methods chainables
         #verify chained:
     Error: should fail to bookMock.verify()

Я обновил тест и теперь он проходит. Мне нужно знать, эквивалентны ли эти два теста.

 it('Verify chained - expectation withArgs()', function(done) {
      var bookMock = sinon.mock(new Book({ title: 'Rayuela' }))

      bookMock
        .expects('update')
        .chain('sort')
        .withArgs({ field: 'asc' })
        .chain('exec')
        .resolves('RESULT')

      bookMock.object
        .update('SOME_ARGUMENTS')
        .sort({ field: 'asc' })
        .exec()
        .then(function() {
          // eslint-disable-line
          try {
            bookMock.verify()
            sinon.restore()
            done(new Error('should fail to bookMock.verify()'))

Это тот же самый тест после того, как я его реорганизовал:

it('Verify chained - expectation withArgs()', function(done) {
      var bookMock = sinon.mock(new Book({ title: 'Rayuela' }))
      var error = new Error('should fail to bookMock.verify()')
      bookMock
        .expects('update')
        .throws(error)
        .chain('sort')
        .withArgs({ field: 'asc' })
        .chain('exec')
        .resolves('RESULT')

      bookMock.object
        .update('SOME_ARGUMENTS')
        .sort({ field: 'asc' })
        .exec()
        .then(function() {
          // eslint-disable-line
          try {
            bookMock.verify()
            sinon.restore()
            done()

Спасибо за любую предоставленную помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...