jquery - 如何使用 Jasmine 对保存时的主干成功和错误响应进行单元测试

标签 jquery backbone.js jasmine jasmine-jquery jasmine-node

 onSaveEvent: function (event) {
                if (this.model !== null) {
                    var that = this;

                    this.model.save(this.model.toJSON(), {
                        success: function (model) {
                            that.model = model;
                            that.model.attributes.isDirty = false;
                        },

                        error: function (model, xhr) {
                            that.model.attributes.isDirty = true;
                        }
                    });
                }
            }
        }

如何在 Jasmine 中对模型的保存成功和错误响应进行单元测试?

最佳答案

要在没有假服务器的情况下进行测试,您可以测试该函数是否已绑定(bind)到模型,然后自己调用绑定(bind)的函数。换句话说,从模型中模拟出 ajax 保存部分。

var view = new YourView()
jasmine.spyOne(view.model, 'save')
view. onSaveEvent()
var args = view.model.save.mostRecentCall.args

args[1].success()
expect(view.model.attributes.isDirty).toBeFalsy()

args[1].error()
expect(view.model.attributes.isDirty). toBeTruthy()

关于jquery - 如何使用 Jasmine 对保存时的主干成功和错误响应进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382364/

相关文章:

javascript - 如何将 RESTful API 映射到 BackboneJS 模型和集合中的 URL?

backbone.js - 如何在 Jasmine 的 onShow 中测试 Backbone Marionnette 方法?

javascript - 如何让 Jasmine 测试加载数据并以正确的顺序执行

node.js - Jasmine 不与 puppeteer 师合作

internet-explorer - Google DFP 刷新广告删除了 Internet Explorer 10 中的 window.history 堆栈

javascript - 使用 JQuery 定义要追加的 HTML 模板

javascript - 在 django 中获取 javascript 数组

javascript - jQuery 函数用 td 内的按钮更改 td 值

javascript - 当 xaxis 是文本时,如何显示 jqplot 堆积条形图?

javascript - Require.js 中的 Backbone.js 模式