1

我找到了一个如何使用 Sinon 创建假服务器的示例。
这是代码(1),(2)。

只用茉莉花就可以做同样的事情吗?
如果是。我应该如何重写代码 (1) 和 (2) ?


(1)

        beforeEach(function () {
            this.server = sinon.fakeServer.create();
            this.server.respondWith(
                'GET',
                Routing.generate('api_get_url') + '/' + this.model.get('id'),
                JSON.stringify(this.fixtureResponse)
            );
        });

(2)

        it('should the response not change', function() {
            this.model.fetch();
            this.server.respond();
            expect(this.fixtureResponse).toEqual(this.model.attributes);
        });
4

1 回答 1

1

取决于您的代码如何访问服务器,但如果它使用 jQuery$.ajax$.get(或类似的集中式)Backbone 的方式,您可以将其存根并返回虚假响应。因此,在 CoffeeScript 中,#1 大致如下所示:

spyOn($,'get').andCallFake (options) =>
  if options.url == Routing.generate('api_get_url') + '/' + @model.get('id')
    options.success(JSON.stringify @fixtureResponse)

另请参阅:使用 Backbone 防止 Jasmine 和 Sinon 的 AJAX 调用

于 2012-07-20T05:04:11.880 回答