Как исправить toArray не является неопределенным в Jest - PullRequest
0 голосов
/ 09 мая 2019

Я создаю модульный тест с помощью Jest и запускаю тесты. Я получаю сообщение об ошибке с тестом: «TypeError: db.find (...). ToArray не является функцией».если кто-то может мне помочь, я буду благодарен.

привет:)

'use strict';
const DB = require('../../../../app/databases/mongo');
jest.mock('../../../../app/databases/mongo');

const noteController = require('../../../../app/controllers/note');

function functionMock(returnValue) {
    const find = jest.fn(() => Promise.resolve(returnValue));
    return jest.fn(() => ({
        find: () => ({ find })
    }));
}

describe('noteController', () => {

    beforeAll(() => {
        DB.getDb.mockImplementation(functionMock(null));
    });

    describe('note controller', () => {
        describe('find', () => {
            it('note list', async done => {
                const ctx = jest.fn();              
                await noteController.find(ctx)
                .then(result => {
                    expect(result).toBeDefined();
                });
                done();
            })
        })
    })

});

Я ожидаю вывод с данными в разрешении обещания, но я получаю: "TypeError: db.find (...). toArray не является функцией "

1 Ответ

0 голосов
/ 09 мая 2019

Ну, вы не показываете, откуда взято db, но я предполагаю, что db.find(...) не возвращает набор результатов.

Измените ваш код на:

var dbResult = db.find(...)
expect(dbResult.toArray).toBeDefined

Это позволит вам утверждать, что у вас есть объект с определенным методом toArray.

Возможно, есть лучший способ утверждать это, но вы не включили достаточно кода, чтобы понять это.так что я догадываюсь.

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