Подтвердить что ты не робот

Как я могу решить сообщение об ошибке "ReferenceError: expect is not defined"?

Я пытаюсь проверить Javascript с помощью mocha. У меня есть этот фрагмент кода:

describe('Array', function() {
    describe('indexOf()', function() {
        it("dovrebbe tornare -1 quando l'elemento non è presente", function() {
            expect([1,2,3].indexOf(4)).to.equal(-1)
        })
    })
})

и a test/array.js. Mocha был установлен с

$ npm install -g mocha

Когда я запустил

$ mocha

Я получаю эту ошибку:

$ mocha
․ 

0 passing (5ms)
1 failing

1) Array indexOf() dovrebbe tornare -1 quando l'elemento non è presente:
 ReferenceError: expect is not defined
  at Context.<anonymous> (/Users/simonegentili/Desktop/Javascipt Best Practice/test/array.js:4:4)
  at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:211:32)
  at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:358:10)
  at /usr/local/lib/node_modules/mocha/lib/runner.js:404:12
  at next (/usr/local/lib/node_modules/mocha/lib/runner.js:284:14)
  at /usr/local/lib/node_modules/mocha/lib/runner.js:293:7
  at next (/usr/local/lib/node_modules/mocha/lib/runner.js:237:23)
  at Object._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:261:5)
  at processImmediate [as _immediateCallback] (timers.js:317:15)
4b9b3361

Ответ 1

Мокко - это тестовый фреймворк; вам нужно предоставить собственную библиотеку утверждений в виде https://mochajs.org/#assertions состояний. Таким образом, expect действительно не определен, потому что вы его никогда не определяли.

(Я рекомендую чай)

npm install chai

затем

(см. комментарий Амит Чокрун, указывающий, что на самом деле требуется чай)

затем

var expect = chai.expect;

Ответ 2

Try

Во-первых, в терминале

npm install expect.js

И в вашем коде:

var expect = require('expect');

Ответ 3

let chai = require('chai');

var assert = chai.assert;

describe('Array', function() {
  describe('#indexOf()', function() {
    it('should return -1 when the value is not present', function() {
      assert.equal(-1, [1, 2, 3].indexOf(4));
    });
  });
});

Ответ 4

После того, как вы установите Chai, как предлагают другие посты, с синтаксисом es6 вы должны поместить импорт вверху

import {expect} from 'chai';

Ответ 5

Чтобы открыть expect глобально, при использовании chai, следует загрузить следующее с помощью конфигурации для вашей предпочтительной библиотеки тестирования:

require('chai/register-assert');  // Using Assert style
require('chai/register-expect');  // Using Expect style
require('chai/register-should');  // Using Should style

Например:

npx mocha --config .mocharc.js *.spec.js

Ответ 6

Установите Expect.js или Chai.js, если вы используете Mocha для TDD

Итак, do npm install expect или npm install chai

Ответ 7

В моем случае использования я запускал спецификацию mocha через karma. Решением было установить интеграцию кармы для моей тестовой среды libs:

npm install karma-mocha --save-dev
npm install karma-sinon-chai --save-dev

... а также добавить рамки в мой karma.conf.js:

module.exports = function(config) {
    config.set({
        browsers: ['Chrome'],
        frameworks: ['mocha', 'sinon-chai'],
        files: [
            '.tmp/**/*.spec.js'
        ],
        client: {
            chai: {
                includeStack: true
            },
            mocha: {
                reporter: 'html',
                ui: 'bdd'
            }
        }
    })
}

Надеюсь, это поможет кому-то еще.

Ответ 8

Либо добавьте этот тег сценария в HTML файл

<script src="https://unpkg.com/[email protected]%3C21/umd/expect.min.js"></script>

или установите пакет

npm install chai or expect