2

可能重复:
如何使用 jasmine 测试完成和失败的延迟对象

这个问题与我之前的问题Fake Ajax request相关。

而不是使用代码 (1)
我想返回 a jQuery deferred object,然后解决它或拒绝它(需要 2 次测试)来测试服务器何时接受它以及何时服务器拒绝它的期望。

任何想法如何通过使用 jQuery 以一种好的方式完成这项任务?

(1)

describe('When Submit button handler fired', function () {
    beforeEach(function () {
        var fakeFunction = function () {
            this.done = function () {return this; };
            this.fail = function () {return this; };
            return this;
        };
        spyOn(backendController, 'submitRequest1').andCallFake(fakeFunction);
        this.view = new MyView({
            el: $('<div><form><input type="submit" value="Submit" /></form></div>')
        });
        this.view.$el.find('form').submit();
    });
    it('backendController.submitRequest1 should be called', function () {
        expect(backendController.submitRequest1).toHaveBeenCalled();
    });
});
4

0 回答 0