【发布时间】:2019-08-12 18:36:12
【问题描述】:
我正在尝试弄清楚如何测试我的组件中包含 v-slot。 组件模板结构:
Grid.vue
<div>
<v-slot>
</div>
当我称之为它时,它是这样的:
<Grid>
<Column v-for="(element, index) in list" :key=index />
</Grid>
到目前为止,我已经知道了:
import { mount } from '@vue/test-utils';
import Grid from '~/components/Grid';
import GridColumn from '~/components/Column';
const columns = [
{
id: 'col1',
},
{
id: 'col2',
},
];
describe('Grid.vue', () => {
const columnWrapper = {
// render(h) {
// return columns.map(function (item) {
// return h('Column', item.id) })
// }
render(h) {
return h(Column, { props: { index: 1, column: columns[0] } });
}
};
const wrapper = mount(Grid, {
slots: { columnWrapper }
});
});
我确实为Grid 编写了两种渲染槽的方法。带有return h(Column.... 的第二个仅创建一列。我怎样才能呈现列 = 模型列表的列数?第一个选项/评论我不确定如果我写得好 - return h('Column' .... - 那可能是错误的。
当我控制台日志wrapper.vm.$el.children HTMLCollection 是空的。列未添加到 Grid。有谁知道我做错了什么?
【问题讨论】:
-
v-slot是新指令,不是内置组件
标签: javascript vue.js jestjs