Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Unit testing 在meteor下使用摩卡/柴进行测试时,Vue$el未定义_Unit Testing_Meteor_Vue.js_Mocha.js_Chai - Fatal编程技术网

Unit testing 在meteor下使用摩卡/柴进行测试时,Vue$el未定义

Unit testing 在meteor下使用摩卡/柴进行测试时,Vue$el未定义,unit-testing,meteor,vue.js,mocha.js,chai,Unit Testing,Meteor,Vue.js,Mocha.js,Chai,我正在为我们的项目启动我们的单元测试环境,但是我们可能选择了一个组合,它在几个场景中都不能很好地工作 我们的项目在Meteor下运行,UI的代码是用Vue和Coffeescript编写的。我们尝试使用的测试环境是Mocha&Chai。运行测试套件时,命令如下所示: meteor test --once --driver-package=dispatch:mocha 根据互联网上的示例,以下代码应该可以工作: 从那时起,我可以为我的测试问$el各种问题,但是$el是未定义的。我甚至尝试使用Vue

我正在为我们的项目启动我们的单元测试环境,但是我们可能选择了一个组合,它在几个场景中都不能很好地工作

我们的项目在Meteor下运行,UI的代码是用Vue和Coffeescript编写的。我们尝试使用的测试环境是Mocha&Chai。运行测试套件时,命令如下所示:

meteor test --once --driver-package=dispatch:mocha
根据互联网上的示例,以下代码应该可以工作:

从那时起,我可以为我的测试问$el各种问题,但是$el是未定义的。我甚至尝试使用
Vue.nextTick()
等待,但它仍然没有定义。在我发现的例子中,他们经常谈论使用webpack,但我听说meteor不喜欢使用webpack


有人有什么建议吗?我们是否选择了一个艰难的组合来合作?

TL;DR:确保您正在浏览器中运行测试。如果不起作用,请尝试在创建Vue应用程序时手动添加元素

我开玩笑地面对同样的问题

最初,我认为在测试应用程序时必须手动创建元素,所以我做到了:

test("do things", () => {
    const vm = new Vue({
        el: document.createElement("div"),
        render(h) {
            return h(Hello);
        }
    });
    expect(vm.$el.textContent).toBe("heyo");
});
但是
文档
未定义的
。这让我发现我应该使用
domjs
而不是
node
来运行测试

"testEnvironment": "jsdom"
有了这个变化,我甚至摆脱了
el
,它仍然像一个符咒一样工作

"testEnvironment": "jsdom"