3

こんにちは私はフェッチを使用してコレクションをテストしています。それを呼び出すと、server.responseを呼び出した後でのみ、偽のサーバーからの応答がありません。目的の結果が得られます。

何故ですか ?

私のコード

  beforeEach( function() {
    server = sinon.fakeServer.create();
    server.autoRespond = true;
    colhedoraList = new ColhedoraList();
  });

.
.
.
    var spy       = sinon.spy(colhedoraList, 'parse');

    server.respondWith("GET", "getColhedoraInfo",
      [200, {"Content-Type": "application/json"},
      '[{"id":"1","talhaoAtual":1,"posicionamentos":[{"lat":-23.9317401,"lng":-50.2210379,"elevadorLigado":true,"horario":"2012-09-21T11:27:58Z"},{"lat":-23.931544,"lng":-50.2161884,"elevadorLigado":true,"horario":"2012-09-21T11:28:02Z"}]}]']);

    colhedoraList.fetch({add: true});
    server.respond();
    expect(spy).toHaveBeenCalled();
    expect(spygmaps).toHaveBeenCalledTwice();
    expect(colhedoraList.get(1).get('talhaoAtual')).toEqual(1);    <<< ALL EXPECTS FAIL, If I don't call respond().
4

1 に答える 1

8

sinon.useFakeTimers仕様のどこかでモックタイマー()を使用している場合、オートレスポンダーが機能しなくなる可能性があります。このaddRequestメソッドは、要求が実際に応答されるタイムアウトを作成します。デフォルトの待機時間は10msです。

于 2012-10-22T07:30:58.873 に答える