web-dev-qa-db-ja.com

「ReferenceError:expect is not defined」エラーメッセージを解決するにはどうすればよいですか?

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)
53
sensorario

Mochaはテストフレームワークです。 https://mochajs.org/#assertions 状態として独自のアサーションライブラリを提供する必要があります。したがって、expectは定義されていないため、実際には未定義です。

(私は chai をお勧めします)

npm install chai

それから

(実際にチャイが必要だと指摘しているAmit Choukrouneのコメントを参照)

それから

var expect = chai.expect;
77
Dan Heberden

試して

まず、ターミナルで

npm install expect.js

そしてあなたのコードで:

var expect = require('expect');
8
Paul Rad
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));
    });
  });
});
2
shael

他の投稿が示唆するようにChaiをインストールしたら、es6構文を使用して、インポートを最上部に配置する必要があります

import {expect} from 'Chai';
1
dmchk

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

0
micrub

私のユースケースでは、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'
            }
        }
    })
}

これが他の誰かに役立つことを願っています。

0
RMorrisey

Mocha for TDDを使用している場合は、Expect.jsまたはChai.jsをインストールします

だから、npm install expect または npm install chai

0
ALoK VeRMa

このスクリプトタグをhtmlファイルに追加するか、

<script src="https://unpkg.com/expect@%3C21/umd/expect.min.js"></script>

またはパッケージをインストールする

npm install chai or expect
0
ASHISH RANJAN