vue.js - 用于 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" ]
我不想在每次测试中都设置这些数据。
我究竟做错了什么?
解决方案
我想到了。与将数据设置为常量相反,我必须从函数中返回它。
function householdData() {
return [ "here", "is", "some", "data" ]
}
然后我将它传递给组件道具,如下所示:
const wrapper = mount(HouseholdsComponent, {
propsData: {
original_household: householdData(),
}
});
瞧!
推荐阅读
- r-markdown - Rmarkdown 中的复选框
- python - 如何完美复制 POST 请求?
- c++ - 如何将xy坐标的值存储在不同的数组中
- javascript - React.js“无法读取未定义的属性'map'”
- android - Xamarin - Device.Idiom 属性在某些 Android 设备中不起作用
- vb.net - 使用 Mysqldump.exe 的数据库备份无法正常工作,它说“在命令行界面上使用密码可能不安全”然后什么也没有发生
- laravel - Laravel 7 路由模型绑定不起作用(路由中的模型始终为空)
- c - 即使 case 为 True,switch 语句也不会初始化值?
- python - 如何使用带有不和谐重写的特定频道
- reactjs - 在 React 中添加星级