微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Vue.js测试中测试Canvas元素?

如何解决如何在Vue.js测试中测试Canvas元素?

我有一些这样的vue组件方法

    showPhotoOnTarget(photoCanvas,targetCanvas) {
      let imgData = photoCanvas
        .getContext("2d")
        .getimageData(0,photoCanvas.width,photoCanvas.height);
      targetCanvas.width = photoCanvas.width;
      targetCanvas.height = photoCanvas.height;
      targetCanvas.getContext("2d").putimageData(imgData,0);
    }

在测试设置中,我尝试模拟Canvas这样的东西:

    store = new Vuex.Store({
      state: {
        currentPhotoCanvas: {
          getContext: () => ({
            getimageData: jest.fn(),putimageData: jest.fn()
          })
        }
      },getters: {
        "snap/getCurrentPhotoCanvas": state => state.currentPhotoCanvas
      }

showPhotoOnTarget在挂接钩上被调用,如下所示:

    const photoCanvasRef = this.$refs.photoTargetCanvas;
    this.showPhotoOnTarget(this.photoCanvas,photoCanvasRef);

$refs在这样的安装选项中被模拟:

const $refs = {
    photoTargetCanvas: {}
  };

但是,当我运行测试时,出现以下错误 TypeError: Failed to execute 'putimageData' on 'CanvasRenderingContext2D': parameter 1 is not of type 'ImageData'.

是否可以在vue测试中模拟这样的Canvas函数?如果是这样,有人可以告诉我如何进行测试设置吗?我对Canvas不太熟悉,这可能是问题的一部分。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。