Как конвертировать фейковый сервер с Синон на Жасмин.

Я нашел пример создания поддельного сервера с помощью 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);
        });

person Lorraine Bernard    schedule 18.07.2012    source источник


Ответы (1)


Зависит от того, как ваш код обращается к серверу, но если он использует jQuery $.ajax или $.get (или что-то аналогичное централизованное), как это делает Backbone, вы можете заглушить это и вместо этого вернуть поддельные ответы. Итак, № 1 будет выглядеть примерно так в CoffeeScript:

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

См. также: Предотвращение вызова AJAX с помощью Jasmine и Sinon с использованием Backbone

person lambshaanxy    schedule 20.07.2012