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