我有以下组件脚本(删除了一些不相关的位):
import api from '@/lib/api';
export default {
methods: {
upload (formData) {
api.uploadFile(formData).then(response => {
this.$emit('input', response.data);
});
}
}
};
我有以下测试,它使用 avoriaz 挂载 Vue 实例:
import { mount } from 'avoriaz';
import { expect } from 'chai';
import sinon from 'sinon';
import UploadForm from '@/components/UploadForm';
describe('upload', () => {
it('passes form data to api.uploadFile', () => {
const testFormData = { test: 'test' };
const api = {
uploadFile: sinon.spy()
};
const wrapper = mount(UploadForm);
wrapper.vm.api = api;
wrapper.vm.upload(testFormData);
expect(api.uploadFile.called).to.equal(true);
});
});
我的 sinon 间谍从来没有被叫过,我在上面尝试了几个不同的变体。监视这样的导入函数的最佳方法是什么?还是我在概念上以错误的方式接近这个?