Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未在JSDOM Env块内执行Chai断言_Javascript_Mocha.js_Chai_Jsdom - Fatal编程技术网

Javascript 未在JSDOM Env块内执行Chai断言

Javascript 未在JSDOM Env块内执行Chai断言,javascript,mocha.js,chai,jsdom,Javascript,Mocha.js,Chai,Jsdom,我刚刚开始用和编写前端单元测试。当我试图遵循基于这些的教程时,即使我将它们设置为失败,我也能通过测试。其他一切都已设置好,并按预期工作jQuery、setup.js、window等。唯一的问题是,我的断言根本没有在jsdom env块内执行 这是我的测试: var chai = require('chai'), expect = chai.expect, jsdom = require('jsdom'), fs = require('fs'), jquery =

我刚刚开始用和编写前端单元测试。当我试图遵循基于这些的教程时,即使我将它们设置为失败,我也能通过测试。其他一切都已设置好,并按预期工作
jQuery、setup.js、window
等。唯一的问题是,我的断言根本没有在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
  });
});

非常感谢您的帮助。

您的
it
中似乎缺少了
done
参数:

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

否则,mocha会认为您的
it
是同步的,并在创建jsdom环境之前完成。

您的
it
中似乎缺少了
done
参数:

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

否则,mocha会认为您的
it
是同步的,并在创建jsdom环境之前完成。

谢谢,伙计,这就是问题所在。我真的浪费了很多时间调试,但没有考虑到这一点。谢谢,伙计,这就是问题所在。我真的浪费了很多时间调试,但没有考虑到这一点。