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

コードがサーバーにアクセスする方法によって異なりますが、Backbone のように jQuery の$.ajaxor $.get(または同様に集中化されたもの) を使用している場合は、それをスタブ化して代わりに偽の応答を返すことができます。#1 は、CoffeeScript で大まかに次のようになります。

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 に答える