测试 Vue.js 组件

Testing Vue.js Component

本文关键字:组件 js Vue 测试      更新时间:2023-09-26

我想测试一个 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);
    });
});

https://github.com/eddyerburgh/avoriaz 现在是 Vue 的官方测试库.js请查看有关设置以对组件进行断言的文档 https://eddyerburgh.gitbooks.io/avoriaz/content/