programing

"ReferenceError : expect is not defined"오류 메시지를 어떻게 해결할 수 있습니까?

yoursource 2021. 1. 14. 23:28
반응형

"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파일. 모카와 함께 설치되었습니다

$ 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정의하지 않았기 때문에 실제로 정의되지 않았습니다.

(나는 차이를 추천합니다 )

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';

Mocha for TDD를 사용하는 경우 Expect.js 또는 Chai.js 설치

그래서, npm install expect또는npm install chai


In my use case, I was running a mocha spec through karma. The solution was to install the karma integrations for my test framework libs:

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

...and also to add the frameworks to my 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'
            }
        }
    })
}

Hope this helps someone else.


Either add this script tag in html file

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

or install package

npm install chai or expect

In order to expose expect globally, while using chai, following should be loaded by means of configuration for your prefered testing library:

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

For example:

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

ReferenceURL : https://stackoverflow.com/questions/19191384/how-can-i-solve-referenceerror-expect-is-not-defined-error-message

반응형