【问题标题】:Jasmine SpyOn File InputJasmine SpyOn 文件输入
【发布时间】:2018-03-15 23:18:15
【问题描述】:

我有一个“文件”类型的输入,我正在为其编写测试。具体来说,我正在测试不允许的 mime 类型的上传。

基本上,这就是我所拥有的:

代码:

var fileInput = $(input)
var myFile = fileInput.files[0]
if (myFile.type !== 'text/csv'){...}

测试:

    spyOnProperty(fileInput, 'files', 'get').and.returnValue([{
        type: 'application/pdf',
    }]);

错误:文件未在 node_modules/jasmine-core/lib/jasmine-core/jasmine.js 中声明为可配置(第 4810 行)

所以“文件”是只读的,有没有其他方法可以完成这个测试?

【问题讨论】:

    标签: javascript jquery input jasmine filelist


    【解决方案1】:

    您可以监视 jQuery 并返回一个模拟的 fileInput 对象。

    spyOn(window, '$').and.returnValue({
        files: [...]
    })
    

    【讨论】:

    • 你确定有可能吗?我收到以下语法错误:“init”类型的参数不可分配给“innerHeight”类型的参数 | “内宽” | “长度” | “外部高度” | “外宽” | “父母” | “模糊” | “焦点……”
    • 您可以尝试使用window 对象来模拟$,我更新了答案。
    • 也许你可以更清楚一点? It works for me.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    相关资源
    最近更新 更多