【问题标题】:How to mock the HTML5 File object with Jest如何用 Jest 模拟 HTML5 File 对象
【发布时间】:2017-12-20 01:01:06
【问题描述】:

我有很多代码围绕 HTML 5 文件对象传递。我为它编写了一套测试,但是,由于文件对象的上次修改日期,它破坏了我的快照测试。

我试图模拟使用:

jest.mock('File', () => {
    return class MockFile {
        filename: string;

        constructor(parts: (string | Blob | ArrayBuffer | ArrayBufferView)[], filename: string, properties?: FilePropertyBag) {
            this.filename = filename;
        }
    }
});

我收到错误提示找不到 File 模块(我不需要在任何我使用它的地方导入它...)

我还尝试扩展文件类并覆盖 lastmodified get 属性,但它似乎没有修复我的快照。

处理这个问题的最佳方法是什么?

【问题讨论】:

    标签: javascript unit-testing jestjs flowtype


    【解决方案1】:

    你只需要在全局命名空间中设置File

    global.File = class MockFile {
        filename: string;
        constructor(parts: (string | Blob | ArrayBuffer | ArrayBufferView)[], filename: string, properties ? : FilePropertyBag) {
          this.filename = filename;
        }
      }
    

    【讨论】:

    • 愚蠢的简单。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多