2013-10-04 210 views
43

我正在嘗試用mocha測試Javascript。我有這個代碼片段:如何解決「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) 
     }) 
    }) 
}) 

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) 

回答

62

摩卡是測試亞軍;你需要提供你自己的斷言庫爲https://mochajs.org/#assertions狀態。因此,expect確實未定義,因爲您從未定義它。

(我建議chai

npm install chai 

然後

(見阿米特Choukroune的評論指出,以實際需要柴)

然後

var expect = chai.expect; 
+0

的'VAR期待...'位並沒有爲我工作。 –

+12

你應該使用'var expect = require('chai')。expect,' –

+0

或'const chai = require('chai')'在它上面。 – chovy

7

嘗試

首先,在終端

npm install expect.js

並在代碼:

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

安裝Expect.js或Chai.js如果您使用Mocha進行TDD

所以,做npm install expectnpm install chai

-1

在我的使用情況下,我是通過karma運行摩卡規範。解決的辦法是安裝業力集成爲我的測試框架庫:

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

希望這可以幫助其他人。

-1

安裝柴後爲其他職位建議,與ES6語法,你應該把進口頂部

import {expect} from 'Chai'; 
相關問題