Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 主干测试使用Jest呈现视图-无法读取属性';createDocumentFragment';未定义的_Unit Testing_Backbone.js_Jestjs_Render_Marionette - Fatal编程技术网

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>