2017-04-05 45 views
0

我试图用Karma运行我的单元测试。我有calendar.tests.js文件看起来很像这样的:使用Vueify运行VueJS单个文件组件的Karma测试

import { handleSelectDay } from '../components/Calendar/index.vue' 
describe('Calendar',() => { 
    describe('handleSelectDay',() => { 
    const data = {}; 

    describe('updates data',() => { 
     it('should set the selectedDay to a new id',() => { 
     handleSelectDay('id'); 
     expect(data.daySelected).to.equal('id'); 
     }); 
    }); 
    }); 
}); 

当我运行这个测试与噶我得到如下:TypeError: (0 , _index.handleSelectDay) is not a function is not a function

我karma.conf.js样子:

module.exports = function (config) { 
    config.set({ 

    frameworks: ['browserify', 'mocha'], 
    files: ['static/js/apps/FutureHours/test/calender.tests.js'], 
    preprocessors: { 
     'static/js/apps/**/test/*.js': ['browserify'] 
    }, 
    browsers: ['Chrome'], 
    logLevel: 'LOG_DEBUG', 

    plugins: [ 
     'karma-mocha', 
     'karma-browserify', 
     'karma-chrome-launcher', 
     'karma-spec-reporter' 
    ], 

    browserify: { 
     debug: true, 
     transform: [['babelify', { presets: ['env'] }], 'vueify'] 
    } 
    }) 
} 

如何获得Karma与VueJS单个文件组件搭配使用?

回答

0

问题在于您无法从.vue组件导出命名导出。相反,组件中使用的任何方法都必须通过单元测试中的组件对象访问。在组件methods以外使用的任何功能都应该可以存放在他们自己的ES模块中,以使单元测试更容易。

相关问题