我想测试一个Vue输入组件,该组件会在已安装的挂钩上更改其输入(随后在模糊时)。该组件本身似乎可以正常工作,但test-utils无法获得正确的值。我使用茉莉花测试框架进行演示:
const appendValue = '_lily';
const testInput = {
props: ['value'],template: `<input ref="testInput" v-on:blur="appendTest" v-model="inputvalue"/>`,mounted() {
this.appendTest();
},computed: {
inputvalue: {
get() {
return this.value;
},set(newValue) {
this.$emit('input',newValue);
}
}
},methods: {
appendTest() {
this.$emit('input',this.value + appendValue);
}
}
}
describe("Vue-input-test",function() {
it("appends _lily",function(done) {
const testvalue = "tiger";
const tWrapper = VueTestUtils.mount(testInput,{
propsData: {
value: testvalue
}
});
Vue.nextTick(function() {
const expectedValue = testvalue + appendValue;
expect(tWrapper.emitted().input.length).toEqual(1);
expect(tWrapper.emitted().input[0][0]).toEqual(expectedValue);
/* These assertions fail: */
expect(tWrapper.vm.$refs.testInput.value).toEqual(expectedValue);
expect(tWrapper.vm.value).toEqual(expectedValue);
tWrapper.destroy();
done();
});
});
});
Here是我的小提琴。感谢您提出的每条建议。谢谢!