2013-10-04 7 views
43

Próbuję przetestować JavaScript z mokka. Mam ten fragment kodu:Jak mogę rozwiązać komunikat o błędzie "ReferenceError: expect is not defined"?

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) 
     }) 
    }) 
}) 

i plik test/array.js. Mocha został zainstalowany z

$ npm install -g mocha 

Kiedy biegnę

$ mocha 

otrzymuję ten błąd:

$ 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) 

Odpowiedz

62

Mocha jest test-biegacz; musisz podać własną bibliotekę asercji jako stany https://mochajs.org/#assertions. Tak więc, expect jest rzeczywiście niezdefiniowany, ponieważ nigdy go nie zdefiniowałeś.

(polecam chai)

npm install chai 

następnie

(patrz komentarz Amit Choukroune za wskazując faktycznie wymagają chai)

następnie

var expect = chai.expect; 
+0

Opcja '' var spodziewać ... trochę nie dla mnie. –

+12

powinieneś użyć 'var expect = require ('chai')." Oczekiwać, ' –

+0

lub' const chai = require ('chai') 'powyżej. – chovy

7

Spróbuj

pierwsze, w terminalu

npm install expect.js

I w kodzie:

var expect = require('expect'); 
-1

Install Expect.js lub Chai.js, jeśli używasz Mocha dla TDD

Więc, czy npm install expect lub npm install chai

-1

W moim przypadku użycia, biegałam spec mokka przez karma. Rozwiązaniem było zainstalowanie integracje karma dla moich testów bibliotekami ramowych:

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

... a także, aby dodać ram do mojego 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' 
      } 
     } 
    }) 
} 

nadzieję, że pomoże ktoś inny.

-1

Po zainstalowaniu Chai inne posty sugerują, ze składnią ES6 należy umieścić import u góry

import {expect} from 'Chai'; 
Powiązane problemy