私はVue CLIのVueJSを使用しています。だから私のすべてのコンポーネントは.vue
フォーマットです。VueJSで計算されたプロパティをテストするにはどうすればよいですか?
私のコンポーネントの1つでは、データセクションにfields
という配列があります。
//Component.vue
data() {
return {
fields : [{"name" : "foo", "title" : "Foosteria"}, {"name" : "bar", "title" : "Barrista"}]
}
}
私は、私はこのようjasmine
で私のユニットテストのすべてを設定していると、彼らが正常に動作fields
//Component.vue
computed : {
subsetOfFields() {
// Something else in component data determines this list
}
}
のサブセットである計算プロパティを持っています。他のすべてのために
//Component.spec.js
import Vue from 'vue'
import MyComponent from 'Component.vue'
describe("Component test", function() {
var myComponentVar = new Vue(MyComponent);
var vm = myComponentVar.$mount();
beforeEach(function() {
vm = myComponentVar.$mount();
);
afterEach(function() {
vm = myComponentVar.$destroy();
});
it("First spec tests something", function() {
...
});
});
、spec
内部に何かをして、その後、data
オブジェクトにアサーションを実行すると、うまく動作します。しかし、subsetOfFields
でアサーションを実行すると、常に空の配列が返されます。なぜそうなのか?それをテストできるように私は何をすべきですか?
参考までに、別のdescribe
ブロックの中に仕様を入れ子にして、さらにfields
アレイを初期化するbeforeEach
を追加しようとしました。うまく行かなかった。
ただし、beforeEach
ファンクションの内部でfields
を初期化しています。しかし、他のスペックのモックデータでfields
配列を初期化したくありません。
これは実際のVueプロジェクトのcomponent.spec.jsです。あなたはそこに必要なものを見つけることができます。 https://github.com/vuejs/vue/blob/dev/test/unit/features/options/computed.spec.js – Bert
@BertEvans、私はすでにその例でテクニックを試していました。彼はすでにその中のデータでコンポーネントを初期化しています。 しかし、18行目では、 'a'のデータは1から2に変化し、19行目では' b'で変更が期待されます。同じことをしましたが、うまくいかず、理由が分かりません。 –