Как я могу решить сообщение об ошибке "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)
Ответы
Ответ 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