Vue.js单元测试测试组件,得到道具类型错误

时间:2018-09-02 10:17:55

标签: unit-testing vue.js

我正在尝试测试音频播放器(开始,暂停,停止,静音,定位,下载事件)

export default {
  name: "audioPlayer",
  props: {
    file: {
      type: Object,
      default: null
    },
    autoPlay: {
      type: Boolean,
      default: false
    },

在我的测试规范中,我将文件props设置为follwoing

  const file = new File(["../../src/assets/audio/ultimo_desejo.mp3"], "ultimo_desejo", { type: "audio/mp3"});
  const ended = jest.fn();

但是当我运行测试时,我得到了错误提示:

console.error node_modules / vue / dist / vue.runtime.common.js:589     [Vue警告]:道具无效:道具“文件”的类型检查失败。预期的对象,有文件。

found in

---> <AudioPlayer>
       <Root>

我应该如何设置文件属性?

感谢您的反馈

1 个答案:

答案 0 :(得分:1)

type道具的file字段更改为File

props: {
  file: {
    type: File,
    default: null
  },
}

然后,您可以在File道具中传递一个新的file

it('takes a file prop', () => {
  const file = new File(['foo'], 'foo.txt');
  const wrapper = shallowMount(MyFoo, {
    propsData: { file }
  });
  expect(wrapper.vm.file).toBeTruthy();
})

demo