Ошибка Мокко: функция «isNumberPrime» не является ошибкой функции

#javascript #node.js #module #mocha.js #chai

Вопрос:

Я создал a function , чтобы проверить, является ли a number простым, и экспортировать его в unit test него вот так:

 /**
 * Method checks if the number is prime amp; returns true or false
 * @param {number} num - number to be checked if it's prime
 * @returns {boolean} - true if num is prime, false if not
 */
 const isNumberPrime = (num) => num < 10 ? [2, 3, 5, 7].includes(num) : ![2, 3, 5, 7].some(i => !(num % i));

exports.modules = { isNumberPrime };
 

Однако, когда я побежал npm test , я получил ошибку: TypeError: isNumberPrime is not a function . Это мое mocha досье:

 const { expect } = require('chai');
const isNumberPrime = require('../utils/prime-number.js');

describe('Util methods', () => {
  it('should return true if number is prime', () => {
    const primeNumber = isNumberPrime(7);

    expect(primeNumber).to.be.true;
  });
});
 

введите описание изображения здесь

Ответ №1:

вам нужно либо добавить {isPrimeNumber} в импорт на мокко, либо установить модуль.экспорт также равен вашей функции

 module.exports = isPrimeNumber;
 

или

 const {isNumberPrime} = require('../utils/prime-number.js');