我有一个 Vue 应用程序,我正在尝试使用 jasmine
/karma
进行单元测试。下面是组件中的代码:
使用数据库中的 v-for=(data,index)
后,我在模板中设置 data.date
:
<p class="date">
{{ dateFilter(data.date) }}
</p>
现在我可以测试给定数据的格式是否正确。我目前在规范文件中有这样的内容:
import { mount } from '@vue/test-utils';
import moment from 'moment'
it('should call method', () => {
const selector = wrapper.find('date');
});
如何调用该方法并传递一个模拟参数来测试该方法?也可以导入moment js吗?
最佳答案
测试日期是否以正确的格式呈现:
const wrapper = mount(MyComponent, {
propsData: {
// assuming component has `items` prop, used in:
// <p class="date" v-for="data in items"> {{ dateFilter(data.date) }} </p>
items: [
{
id: 100,
date: new Date('2020-12-10T12:30:45-08:00') // 12:30pm GMT-8 === 4:30pm UTC
}
]
}
})
const dateEl = wrapper.find('.date') // find first dateElement with `date` class
expect(dateEl.text()).toEqual('16:30 pm')
要直接测试组件方法,请通过包装器的vm
property 访问该方法:
expect(wrapper.vm.dataFilter(new Date('2020-12-10T12:30:45-08:00'))).toEqual('16:30 pm')
关于javascript - 无法使用vue和moment将参数传递给 Jasmine 中的按钮方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65316978/