Ich versuche, einen Beobachter auf einer Requisite in einer Vue-Komponente zu testen. Ich benutze Karma + Jasmin. Aber es scheint, dass Beobachter auf Requisiten nicht im Komponententest ausgelöst werden.Vuejs Komponententest - Beobachter auf Requisiten
Hier ist eine einfache Komponente:
export default {
name: 'hello',
data: function() {
return {
b: null
};
},
props: {
a: {
type: String,
default: null
}
},
watch: {
a(val) {
this.b = val;
}
},
computed: {
c() {
return this.a + " computed";
}
}
}
und hier ist mein Test:
describe('Hello',() => {
const HelloCtor = Vue.extend(Hello);
let vm;
beforeEach(() => {
vm = new HelloCtor({
propsData: {
a: "hello"
}
}).$mount();
});
afterEach(() => {
vm.$destroy();
});
it('should watch a and compute c', (done) => {
vm.$nextTick(() => {
expect(vm.c).toBe("hello computed");
expect(vm.b).toBe("hello");
done();
});
});
});
In der behauptet, 'c' berechnet wird, korrekt aber 'b' ist immer null. Wenn ich 'a' zu Daten bewege, funktioniert alles perfekt. Hinweis: Wenn ich meine App manuell in meinem Browser teste, werden Beobachter auf Requisiten genau wie die auf der Datenvariablen ausgelöst.
Irgendwelche Ideen, wie man es testet?
Danke, du zeigst auf meinen Fehler, ich vermutete, dass Beobachter ein erstes Mal während des Montierens ausgelöst wurden. – budgw