2017-04-01 9 views
1

nueスクリプトでmocha-webpackを使用してvuejsコンポーネントをテストしようとしています。私はテストでは、このようなvuexストアをモック午前:vuejsコンポーネントユニットテストで定義された 'this'変数を取得する方法

const vm = new Vue({ 
     template: '<div><test></test></div>', 
     store: new Vuex.Store(mockedStore), 
     components: { 
      'test': TestItems 
     } 
    }).$mount() 

Iコンポーネント上でメソッドを呼び出すようなテストする:私のような店舗にアクセスするコードを有する成分で

vm.$options.components.test.methods.foo() 

this.$store.commit('bar', data) 

問題は、それがこの時点になったとき、私はこのエラーを取得することです:

'Cannot read property \'commit\' of undefined' undefined undefined 

「this」はこのコンテキストでは定義されていないことを確認しました。私は、アプリを実行すると、 'これは'定義され、 '$ストア'を持っています。私はそれをユニットテストのコンテキストで動作させることができますか?

答えて

1

testのインスタンスを使用しないでtestコンポーネントのfooメソッドを呼び出すとします。

const vm = new Vue({ 
    template: '<div><test ref="test"></test></div>', 
    store: new Vuex.Store(mockedStore), 
    components: { 
    'test': TestItems 
    } 
}).$mount() 
vm.$refs.test.foo() 

foothisとしてvm.$refs.testで呼び出されます。このような何かをやってみてください。

+0

ありがとうございました。また、ユニットテストが.vueファイルにないので、vueを 'vue/dist/vue.js'からインポートしてテンプレートをコンパイルする必要がありました。 – GWTF

関連する問題