0

ember-data rest アダプターを介してサーバーに保存するモデルがあります。

ember-data のコミット機能をスタブまたはモックすることにより、ember-data が既にテストされているものを再テストせずに、データがサーバーに正しく送信および返されていることをテストするにはどうすればよいですか?

できればジャスミンで!

4

1 に答える 1

1

単体テストでは、実際のクライアント サーバー通信を使用しないでください。通常、ブラウザの XMLHttpRequest 実装をモックします。

jasmine-fake-ajaxsinonjsなどのツールがたくさんあります。どちらもブラウザの XHR 実装をオーバーライドし、サーバーをシミュレートします。したがって、ルートと返すべきものを設定できます。どちらも非常に細かく調整できるため、for タイプ、content-type、または http 応答コードを設定するかどうかを確認できます。

{
    setUp: function () {
        this.xhr = sinon.useFakeXMLHttpRequest();
        var requests = this.requests = [];

        this.xhr.onCreate = function (xhr) {
            requests.push(xhr);
        };
    },

    tearDown: function () {
        this.xhr.restore();
    },

    "test should fetch comments from server" : function () {
        var callback = sinon.spy();
        myLib.getCommentsFor("/some/article", callback);
        assertEquals(1, this.requests.length);

        this.requests[0].respond(200, { "Content-Type": "application/json" },
                                 '[{ "id": 12, "comment": "Hey there" }]');
        assert(callback.calledWith([{ id: 12, comment: "Hey there" }]));
    }
}  
于 2012-08-02T20:42:57.523 に答える