2016-09-16 58 views
0

我剛剛開始使用mocha,chaijsdom編寫我的前端單元測試。當我嘗試按照這些教程進行操作時 - 即使當我將它們設置爲失敗時,我得到也會通過測試。其他一切都設置和按預期工作jQuery, setup.js, window等。唯一的問題是,我的斷言沒有得到在jsdom env塊內執行。Chai聲明不在JSDOM內部執行Env模塊

這是我的測試:

var chai = require('chai'), 
    expect = chai.expect, 
    jsdom = require('jsdom'), 
    fs = require('fs'), 
    jquery = fs.readFileSync('./js/vendor/jquery-3.0.0.min.js', 'utf-8'); 

describe('UI DOM tests', function() { 

    it('should fail', function() { 
    // simple html 
    var htmlFragment = fs.readFileSync('./test/runner.html'); 

    jsdom.env({ 
     html: htmlFragment, 
     src: [jquery, '../node_modules/chai/chai.js'], 
     done: function (err, window) { 
     var $ = window.$; 

     expect(true).eql(false); // nothing happens 

     done(); 
     } 
    }); 

    expect(true).eql(false); // assert fails as expected 
    }); 
}); 

任何幫助是極大的讚賞。

回答

3

您似乎缺少done參數在it

it('should fail', function (done) { 

否則摩卡會認爲你it是同步的,完成創建您的jsdom ENV前。

+1

謝謝隊友,這是問題所在。我真的浪費了很多時間調試,但沒有考慮到這一點。 – ekostadinov