Я создал простой тест Mocha. Он отлично работает, когда используется модуль Node "assert". Я запускаю его из командной строки (Mocha установлен как модуль глобального узла):
$ mocha myTest.js
․
1 test complete (6 ms)
Скрипт выглядит так:
var assert = require("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(5));
assert.equal(-1, [1,2,3].indexOf(0));
})
})
})
Ну, я попытался добавить Chai вместо библиотеки assert. Я его сначала установил:
npm install chai
Итак, в моем проекте создана директория node_modules. Пока отлично. Затем я изменил сценарий, чтобы использовать Chai:
var chai = require("chai");
describe('Array', function(){
describe('#indexOf()', function(){
it('should return -1 when the value is not present', function(){
[1,2,3].indexOf(5).should.equal(-1);
expect([1,2,3].indexOf(5)).to.equal(-1);
assert.equal([1,2,3].indexOf(5),-1);
})
})
});
Не работает, тест Mocha не проходит с TypeError:
TypeError: Cannot call method 'equal' of undefined
Я предполагаю, что Чай не определил должен, поэтому он не определен.
Как это возможно?
Как я могу запустить мои тесты с помощью Chai? Я попытался установить Chai глобально, но безрезультатно. Я также запустил сценарий с -r chai
, но тоже безрезультатно.
Судя по всему, модуль Chai загружен, но не определяет переменные (свойства Object.prototype). Как я могу это исправить?