Unit testing 在meteor下使用摩卡/柴进行测试时,Vue$el未定义
我正在为我们的项目启动我们的单元测试环境,但是我们可能选择了一个组合,它在几个场景中都不能很好地工作 我们的项目在Meteor下运行,UI的代码是用Vue和Coffeescript编写的。我们尝试使用的测试环境是Mocha&Chai。运行测试套件时,命令如下所示: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 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"