javascript – 测试Vue.js组件

我想测试一个Vue.js组件,但我失败了.简单地说,我正在设置一个组件属性,我想断言它设置正确.如果这很重要,模块将加载导出,并使用Webpack输出JS.
// component
exports = module.exports = {};

module.exports = {
  data: function () {
    return {
      active: false
    };
  },methods: {
    'close': function () {
       console.log(this.active); // -> true
       this.active = false;
       console.log(this.active); // -> false
    }
  }
};

// component-test
var modal = require('../../resources/src/js/components/_component.js');
var assert = require('assert');

describe('close()',function () {
  beforeEach(function () {
    modal.data.active = true;
  });
  it('should set modal to inactive',function () {
    console.log(modal.data.active); // -> true
    modal.methods.close();
    console.log(modal.data.active); // -> true
    assert.equal(modal.data.active,false);
  });
});

解决方法

这应该会给你一个关于如何在测试时加载vue组件的提示;
var modalComponent = require('../../resources/src/js/components/_component.js');
var assert = require('assert');         

 //load the component with a vue instance
vm = new Vue({
    template: '<div><test v-ref:test-component></test></div>',components: {
        'test': modalComponent
    }
}).$mount();

var modal = vm.$refs.testComponent;

describe('close()',function () {
    beforeEach(function () {
        modal.active = true;
    });

    it('should set modal to inactive',function () {
        console.log(modal.active); // -> true
        modal.close();
        console.log(modal.active); // -> false
        assert.equal(modal.active,false);
    });
});

相关文章

事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数...
js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言...
什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源...
@ &quot;TOC&quot; 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有...
搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图, :视图模...
首先我们需要一个html代码的框架如下: 我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容...