簡體   English   中英

測試Vue.js組件

[英]Testing Vue.js Component

我想測試一個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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM