我正在使用jQuery和Backbone.js将<input type="file">
映射到Backbone模型字段,我需要测试文件名更改是否会传播到模型中。
以下是导致问题的测试代码行:
target.$("input[name=fileName]").val(fileName).triggerHandler("change");
// ^ SecurityError thrown here
这是更改事件处理程序:
var ItemView = Backbone.View.extend({
events: {
"change input[name=fileName]": "onFileNameChanged"
},
onFileNameChanged: function () {
this.model.set("ItemName", this.$("input[name=fileName]").val());
}
});
我理解为什么我会得到一个带有测试代码的SecurityError
,因为毕竟浏览器很可能会认为我正试图在我的JavaScript代码中进行隐形上传。我并不是直接试图解决这个问题 - 我只是想知道如何对这个测试用例进行单元测试。
我可以在这种情况下使用一种好的模拟技术或其他解决方法吗?