MochaでJavascriptをテストしようとしています。私はこのコードの断片を持っています:
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)
})
})
})
および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)
Mochaはテストフレームワークです。 https://mochajs.org/#assertions 状態として独自のアサーションライブラリを提供する必要があります。したがって、expect
は定義されていないため、実際には未定義です。
(私は chai をお勧めします)
npm install chai
それから
(実際にチャイが必要だと指摘しているAmit Choukrouneのコメントを参照)
それから
var expect = chai.expect;
試して
まず、ターミナルで
npm install expect.js
そしてあなたのコードで:
var expect = require('expect');
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));
});
});
});
他の投稿が示唆するようにChaiをインストールしたら、es6構文を使用して、インポートを最上部に配置する必要があります
import {expect} from 'Chai';
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
私のユースケースでは、karma
を介してmocha仕様を実行していました。解決策は、私のテストフレームワークライブラリのカルマ統合をインストールすることでした。
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'
}
}
})
}
これが他の誰かに役立つことを願っています。
Mocha for TDDを使用している場合は、Expect.jsまたはChai.jsをインストールします
だから、npm install expect
または npm install chai
このスクリプトタグをhtmlファイルに追加するか、
<script src="https://unpkg.com/expect@%3C21/umd/expect.min.js"></script>
またはパッケージをインストールする
npm install chai or expect