我正在使用TypeScript和vue 3 composition API。
我在一个组件(在uploadFile.vue中)中有一个函数,我想使用Vitest进行(单元)测试:
<template>
<div style="display: none">
<input
ref="input"
type="file"
@change="addNewImage($event)"
/>
</div>
</template>
const addNewImage = async (event: Event): Promise<void> => {
...
}
在我的uploadFile.spec.ts中,我这样做:
import { afterEach, describe, it, expect, vi, beforeEach } from 'vitest'
import { mount, shallowMount, VueWrapper } from '@vue/test-utils'
import UploadFile from './UploadFile.vue'
describe('UploadFile', () => {
it('renders the component', () => {
const addImageSpy = vi.spyOn(UploadFile, 'addNewImage')
const wrapper = shallowMount(UploadFile, {
...
}
const input = wrapper.find('input[type="file"]');
await input.trigger('change')
await wrapper.vm.$nextTick();
expect(addImageSpy).toHaveBeenCalled();
})
然而,我的终端显示错误:“addNewImage不存在”(当指向vi.spyOn(fileUpload,“addImage”)时)。
我做错了什么?
1条答案
按热度按时间kb5ga3dv1#
组件定义没有
addImageSpy
成员。wrapper.vm
有: