首页 > 解决方案 > 用于 Jest 测试的可重用 const

问题描述

我正在尝试声明 aconst可重新用于许多测试。

例如:

describe('Component.vue', () => {

    const householdData = [ "here", "is", "some", "data" ]


    it('does stuff', () => {
        const wrapper = mount(HouseholdsComponent, {
            propsData: {
                original_household: householdData,
            }
        });

        expect(original_household).toContain("here");
    })

    it('does stuff', () => {
        const wrapper = mount(HouseholdsComponent, {
            propsData: {
                original_household: householdData,
            }
        });

        expect(original_household).toContain("is");
    })
});

问题是这householdData似乎没有得到设置。

当我 console.log householdData,我得到这个:

{ clients: [Getter/Setter], networth: [Getter/Setter] }

我也尝试过像这样在组件中设置数据:

wrapper.vm.someVariable = householdData

这也给了我这个:

{ clients: [Getter/Setter], networth: [Getter/Setter] }

但是,当我这样做时它确实有效。

wrapper.vm.someVariable = [ "here", "is", "some", "data" ]

我不想在每次测试中都设置这些数据。

我究竟做错了什么?

标签: vue.jsjestjs

解决方案


我想到了。与将数据设置为常量相反,我必须从函数中返回它。

function householdData() {
    return [ "here", "is", "some", "data" ]
}

然后我将它传递给组件道具,如下所示:

    const wrapper = mount(HouseholdsComponent, {
        propsData: {
            original_household: householdData(),
        }
    });

瞧!


推荐阅读