Я пишу модульные тесты для некоторых компонентов, которые я сделал на своей работе. Мы используем Mocha (TDD) и библиотеку утверждений Chai. У меня есть компонент с некоторыми флажками, и использование метода setChecked () на них из vue-test-utils ведет себя не так, как ожидалось. Я сделал небольшой пример, который воспроизводит ошибку:
TestComponent.vue:
<template>
<div>
<input class="checkboxTest" type="checkbox" v-model="cbVal">
<input class="inputTest" type="text" v-model="textVal">
</div>
</template>
<script>
define([], function() {
return {
data: function() {
return {
cbVal: false,
textVal: ""
}
}
}
})
</script>
test.js:
suite("Random test", function() {
var VueTest;
var TestComponent;
//Import the vue test utils library and TestComponent
suiteSetup(function(done) {
requirejs(
["vue-test-utils", "vuec!components/TestComponent"],
function(VT, TC) {
VueTest = VT;
TestComponent = TC;
done();
}
);
});
//This test passes
test("fill in the input", function() {
var wrapper = VueTest.mount(TestComponent);
wrapper.find(".inputTest").setValue("Hello, world!");
assert.equal(wrapper.vm.textVal, "Hello, world!");
});
//This one does not
test("programatically check the box", function() {
var wrapper = VueTest.mount(TestComponent);
wrapper.find(".checkboxTest").setChecked(true);
//Prints out AssertionError: expected false to equal true
assert.equal(wrapper.vm.cbVal, true);
});
});
Элемент данных textVal в TestComponent изменяется, а cbVal - нет. Кто-нибудь может объяснить, почему setValue () работает просто отлично, а setChecked () - нет? Заранее спасибо.