Unit testing 主干测试使用Jest呈现视图-无法读取属性';createDocumentFragment';未定义的
我正试图为主干/木偶视图编写一个非常简单的单元测试 测试代码:Unit testing 主干测试使用Jest呈现视图-无法读取属性';createDocumentFragment';未定义的,unit-testing,backbone.js,jestjs,render,marionette,Unit Testing,Backbone.js,Jestjs,Render,Marionette,我正试图为主干/木偶视图编写一个非常简单的单元测试 测试代码: import MyView from './MyView'; describe('test of my view', function() { const myView = new MyView().render(); }); 但返回以下错误TypeError:无法读取未定义的属性“createDocumentFragment” at buildFragment (node_modules/jquery/dist/jquer
import MyView from './MyView';
describe('test of my view', function() {
const myView = new MyView().render();
});
但返回以下错误TypeError:无法读取未定义的属性“createDocumentFragment”
at buildFragment (node_modules/jquery/dist/jquery.js:4311:22)
at domManip (node_modules/jquery/dist/jquery.js:5238:14)
at jQuery.fn.init.append (node_modules/jquery/dist/jquery.js:5431:10)
at jQuery.fn.init.<anonymous> (node_modules/jquery/dist/jquery.js:5525:18)
at access (node_modules/jquery/dist/jquery.js:3642:7)
at jQuery.fn.init.html (node_modules/jquery/dist/jquery.js:5492:10)
at Marionette.TemplateCache.loadTemplate (node_modules/backbone.marionette/lib/core/backbone.marionette.js:1169:24)
at Marionette.TemplateCache.load (node_modules/backbone.marionette/lib/core/backbone.marionette.js:1149:27)
at Function.get (node_modules/backbone.marionette/lib/core/backbone.marionette.js:1111:29)
at Object.render (node_modules/backbone.marionette/lib/core/backbone.marionette.js:1200:87)
at child._renderTemplate (node_modules/backbone.marionette/lib/core/backbone.marionette.js:1664:38)
at child.render (node_modules/backbone.marionette/lib/core/backbone.marionette.js:1632:12)
at child.render (node_modules/backbone.marionette/lib/core/backbone.marionette.js:2628:51)
at Object.<anonymous> (src/js/my.view.spec.js:22:27)
在buildFragment(node_modules/jquery/dist/jquery.js:4311:22)
在domManip(node_modules/jquery/dist/jquery.js:5238:14)
在jQuery.fn.init.append(node_modules/jQuery/dist/jQuery.js:5431:10)
在jQuery.fn.init
请粘贴MyView
代码好吗?添加了MyView代码+模板代码您使用的是哪个版本的木偶?主干1.3.5-主干2.4.3-把手4.0.5-jquery 2.2.4-jest 23.1.0此代码是在浏览器还是NodeJS环境中运行的?
import Marionette from 'backbone.marionette';
import { LeftMenuView as LeftMenuViewTemplate } from './templates.index';
const LeftMenuView = Marionette.LayoutView.extend({
template: LeftMenuViewTemplate,
ui: {
generalButton: '.menu-general',
generalLink: '.menu-general-link',
},
buttonsList: [
'generalButton',
],
events: {
' click @ui.generalLink': 'switchToGeneral',
},
initialize() {},
onShow() {
this.ui.navLine.height(this.ui.generalButton.innerHeight());
this.ui.navLine.css('top', this.ui.generalButton.position().top);
},
_animate(target) {
const topPos = target.position().top;
const newHeight = target.innerHeight();
this.ui.navLine.stop().animate({
top: topPos,
height: newHeight,
});
},
setInactiveButtons() {
for (let i = 0; i < this.buttonsList.length; i += 1) {
this.ui[this.buttonsList[i]].toggleClass('active', false);
}
},
switchToGeneral() {
this.setInactiveButtons();
this.ui.generalButton.toggleClass('active', true);
this.trigger('changePage:toGeneral');
this._animate(this.ui.generalButton);
},
});
export default LeftMenuView;
<div class="nav left-menu">
<div class="vertical-nav-line"> </div>
<ul class="settings-menu">
<li class="menu-general active"><a href="#" class="menu-general-link">{{i18n 'NavMenuGeneral'}}</a></li>
</ul>
</div>