2017-04-05 28 views
0

カルマでユニットテストを実行しようとしています。私はこのようにたくさん見える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'); 
     }); 
    }); 
    }); 
}); 

私はカルマでこのテストを実行すると、私は以下の取得:

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'] 
    } 
    }) 
} 
TypeError: (0 , _index.handleSelectDay) is not a function is not a function

私karma.conf.jsは次のようになります

カルマにVueJSの単一ファイルコンポーネントをうまくプレイさせるにはどうすればよいですか?

答えて

0

この問題は、.vueコンポーネントからの名前付きエクスポートを持つことができないということです。代わりに、コンポーネントで使用されるメソッドは、ユニットテストでコンポーネントオブジェクトを介してアクセスする必要があります。コンポーネントのmethodsの外で使用される関数は、ユニットテストをはるかに簡単にするために、おそらく自身のESモジュールに存在するはずです。