Unit testing 用Jest进行vue.js单元测试:我应该模拟HTLL5音频元素吗?

Unit testing 用Jest进行vue.js单元测试:我应该模拟HTLL5音频元素吗?,unit-testing,vue.js,jestjs,vue-test-utils,Unit Testing,Vue.js,Jestjs,Vue Test Utils,在测试一个包含HTML5元素的AudioPlayer vue组件时,我想知道如何用Jest编写规范 模板 <audio id="player" ref="player" @ended="ended" @canplay="canPlay" :src="file"></audio> 如何设置文件属性?(我想从src/assets/audio/mysong.mp3传递一个音频文件) 如果我改用shallowMount,我应该模拟音频元素吗?哪条路。。。由于音频元素处理

在测试一个包含HTML5元素的AudioPlayer vue组件时,我想知道如何用Jest编写规范

模板

    <audio id="player" ref="player" @ended="ended" @canplay="canPlay" :src="file"></audio>
如何设置文件属性?(我想从src/assets/audio/mysong.mp3传递一个音频文件)


如果我改用shallowMount,我应该模拟音频元素吗?哪条路。。。由于音频元素处理play()、pause()、mute()。。。我有点迷路了,我找不到任何与测试此类组件相关的帖子…

您可以使用空声音文件初始化组件,您可以使用base64数据uri内联它

const file='数据:音频/波形;base64,UKLGRJJAAABXQVZFZM10IBIAAAAAAAAABAAAQB8AAEAFAAABAAAGAABMYWN0BAAAAAAAAAABKYXRhaAAAAAA==';
常量包装=挂载(音频播放器{
propsData:{
自动播放:错误,
文件
结束了,
能玩
}
});
另见:

我检查Heading.vue父组件如何设置文件属性,它不是字符串或文件,而是计算方法中的对象:

 data() {
  return {
    file: "ultimo_desejo",
   ....

computed: {
<audioplayer id="audioplayer" v-if="listening" v-show="showAudioPlayer" :autoPlay="autoPlay" :file="audioFile" :canPlay="audioReady" :ended="switchAudioPlayer" @ended="switchAudioPlayer"></audioplayer>
....
所以我可以在AudioPlayer.spec文件中设置道具

const file = require("@/assets/audio/ultimo_desejo.mp3");

const wrapper = mount(AudioPlayer, {
  propsData: {
    autoPlay: false,
    file: file,
    ended,
    canPlay
  }
});
props: {
    file: {
      type: Object,
      default: null
    },  
const file = require("@/assets/audio/ultimo_desejo.mp3");

const wrapper = mount(AudioPlayer, {
  propsData: {
    autoPlay: false,
    file: file,
    ended,
    canPlay
  }
});