けさらんぱさらん

方向性は定めず、ただ思いつくままに

Jasmineの続き

前回、中途半端に記事をリリースしてしまったのでフォローをば
前回の記事

ajaxメソッドが失敗した時のテストが全然テストになっていない上にテストを実行すると
Alertダイアログが出てしまうという・・・

修正します。

it("getDataでデータの取得に失敗するとAlertが表示される", function () {
        spyOn($, "ajax").andCallFake(
            function (pos) {
                var d = $.Deferred();
                d.reject("error");
                return d.promise();
            });

        spyOn(window, "alert");
        details.getData("http://test.com",1);

        expect(window.alert).toHaveBeenCalledWith("error");
    });

alertメソッドをモックします。これでalertダイアログは出ません。
テストは、alertメソッドが指定した引数を伴って呼ばれたかで成否を判定しています。

という感じで以上!