2016-02-08 23 views
7

Bir Vue.js bileşenini test etmek istiyorum ve bunun için başarısızım. Basitçe söylemek gerekirse, bir bileşen özelliği ayarlıyorum ve doğru şekilde ayarlandığını iddia etmek istiyorum. Bu önemliyse, modül ihracatla yüklenir ve JS Webpack kullanılarak çıkarılır.Vue.js Bileşeninin Test Edilmesi

// 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); 
    }); 
}); 
+0

yüzden aslında ne başarısız https://eddyerburgh.gitbooks.io/avoriaz/content/ üzerine iddialarda yapmak için kurulum alma konusunda belgelere ödeme şimdi? Testlerin çıktısı ne? Test hakkında [vue js guide] (http://vuejs.org/guide/application.html#Unit_Testing) kontrol ettiniz mi? –

+0

da github üzerinde [webpack örneği] (https://github.com/vuejs/vue-loader-example) kontrol edin, bazı nedenlerle karma, jasmine + phantomjs –

cevap

6

Bu, test sırasında vue bileşenlerinin nasıl yükleneceğine dair bir ipucu vermelidir;

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); 
    }); 
}); 
+0

PhantomJS zaman aşımı yapar. 'PhantomJS 2.1.1 (Mac OS X 0.0.0): 4 DISCONNECTED (10.003 sn/0 sn)' den 0 –

İlgili konular