Vue 2 使用 Mocha 进行测试,包装器数据未更改或更新
Vue 2 Testing with Mocha, wrapper data is not changing or updating
我正在尝试在 vue 2-cli 项目中集成测试,使用的测试框架是 Mocha 和 Chai。我依赖一个非常有用的指南:
https://www.dotnetcurry.com/vuejs/1441/vuejs-unit-testing
大部分测试都有效,但每次我动态更改数据并期望包装器发生变化时,包装器根本没有更新。例如:
describe('the onIncrease method', () => {
let wrapper;
let componentInstance;
beforeEach(() => {
wrapper = shallowMount(Counter, {
propsData: {initialValue: 42},
});
componentInstance = wrapper.vm;
});
it('the counter value is increased by one', () => {
componentInstance.onIncrease();
expect(componentInstance.value).to.be.equal(43);
});
// this test passes and returns the correct 43
it('the rendered output contains the value increased by one', () => {
componentInstance.onIncrease();
expect(wrapper.text()).to.include('Counter value: 43');
});
// this test fails with:
// expected 'Counter value: 42' to include 'Counter value: 43'
});
我已经为此工作了好几天,希望任何人都可以提供有关如何获取更新数据的提示。有错误页面的图片,也许有用。
我认为这根本不可能。您可以设置默认属性并渲染组件,但之后您只能更改和读取数据和计算属性,至少在单元测试中是这样。
问题已解决,由于时机不对而失败。
尝试设置定时器或使用 nextTick() 函数:https://v3.vuejs.org/api/global-api.html#nexttick
我正在尝试在 vue 2-cli 项目中集成测试,使用的测试框架是 Mocha 和 Chai。我依赖一个非常有用的指南:
https://www.dotnetcurry.com/vuejs/1441/vuejs-unit-testing
大部分测试都有效,但每次我动态更改数据并期望包装器发生变化时,包装器根本没有更新。例如:
describe('the onIncrease method', () => {
let wrapper;
let componentInstance;
beforeEach(() => {
wrapper = shallowMount(Counter, {
propsData: {initialValue: 42},
});
componentInstance = wrapper.vm;
});
it('the counter value is increased by one', () => {
componentInstance.onIncrease();
expect(componentInstance.value).to.be.equal(43);
});
// this test passes and returns the correct 43
it('the rendered output contains the value increased by one', () => {
componentInstance.onIncrease();
expect(wrapper.text()).to.include('Counter value: 43');
});
// this test fails with:
// expected 'Counter value: 42' to include 'Counter value: 43'
});
我已经为此工作了好几天,希望任何人都可以提供有关如何获取更新数据的提示。有错误页面的图片,也许有用。
我认为这根本不可能。您可以设置默认属性并渲染组件,但之后您只能更改和读取数据和计算属性,至少在单元测试中是这样。
问题已解决,由于时机不对而失败。
尝试设置定时器或使用 nextTick() 函数:https://v3.vuejs.org/api/global-api.html#nexttick