我正在用nuxt js和jest开发一个系统,其中我想上传一张图片。
下面是我的html代码:
<input
id="photo"
ref="photo"
type="file"
name=""
class="form-control d-flex"
@change="uploadPhoto"
>
下面是我在nuxt js中的uploadPhoto函数:
uploadPhoto () {
const file = this.$refs.photo.files[0]
// upload photo
const formData = new FormData()
formData.append('photo', file)
const returnedData = await this.$axios.$post('/api/photo/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
问题是:
我如何可以模拟上传照片在笑话测试我的代码?
我的笑话代码是这样的:
test('uploading photo test', () => {
wrapper = mount(UploadPhotoComponent, {
stubs: {
NuxtLink: true
},
mocks: {
$auth: {
loggedIn: true,
$storage: {
_state: {
'_token.local': 'api bearer token'
}
}
},
$axios: {
$post: jest.fn(() => {
return Promise.resolve({
status: 200,
message: 'photo was uploaded successfully.',
entire: []
})
})
}
}
})
})
我不知道如何测试上传文件在笑话使用模拟。
有人能帮帮我吗?
1条答案
按热度按时间bttbmeg01#
最后,我已经实现了如何做到这一点。首先生成一个图像blob和文件:
将其赋值给
$refs
对象后: