読者です 読者をやめる 読者になる 読者になる

JasmineでBDDをやってみる

Jasmineを使っている人が社内にいて、そしてBDDをやってみたかったので触ってみた。
JasmineのダウンロードページからDownload。



で、一番新しいjasmine-standalone-1.1.0.zipをダウンロードしたらlibしかなく、
「あれ?これだけなの?」
となり、とりあえずDocumentを読んだ。
そして「SpecRunner.htmlってどこだよー!!」ってなった。



ググったら1.0.2にあるよというのがわかり1.0.2もダウンロード。
libを1.1.0に置き換えて、SpecRunner.htmlをvimで開き、

%s/1.0.2/1.1.0/g

で、JavaScriptCSSのpathを修正。



で、

open -a "google chrome" SpecRunner.html

とかでブラウザで開く。



そうするとこんな感じでテスト成功例が出ますと。


でも今回はAPIのテストをしたかったのでこんな感じで書いた。

var appServerUrl = '/api/hogehoge';

describe("Jasmine", function() {
    it("makes testing JavaScript awesome!", function() {
        var xhr = new jasmine.XmlHttpRequest();
        xhr.open("GET", appServerUrl, false);
        xhr.send(null);

        runs(function() {
            result = JSON.parse(xhr.responseText);
            expect(result.meta).not.toBeNull();
            expect(result.meta.code).toEqual(200);
            expect(result.data).not.toBeNull();
            [1, 3, 5, 7].forEach(function(i) {
                expect(result.data[i]).not.toBeNull();
            });
        });
    });
});

ざっくりできたけど、僕がやりたかったとことはもっとbehatとかcucumberみたいなことだった。
プロデューサをテストに巻き込みたかったのだけどこれだと足りないかなぁ。