Skip to content
comutt edited this page Oct 2, 2012 · 3 revisions

Jasmine

Jasmine が動くことの確認

各自のブラウザで Jasmine のサンプルテスト (SpecRunner.html) が正常に動くことを確認してください。

手順

  1. このリポジトリの zip 版 をダウンロード

  2. 展開

  3. jasmine-1.2.0/SpecRunner.html をブラウザで開きます。

  4. 以下のように、テストが正常に実行されればOKです。

    Jasmineのテスト結果

Jasmine の基本知識

  1. 実装となるソースコードを用意する
    • たとえば、以下のような実装を src/Greeter.js で用意する

function Greeter() {}

Greeter.prototype.hello = function() { return "こんにちは"; };

Greeter.prototype.goodbye = function() { return "さようなら"; };

var greeter = Greeter(); ```

  1. テストコードファイルを用意する
    • たとえば、以下のようなテストコードを spec/GreeterSpec.js で用意する

// まず、全体を describe() で囲います describe("Greeter", function() {

// テスト対象クラスのインスタンス
var greeter;

// 各テスト実行前に必ず実行される前処理を ``beforeEach()`` の中に書きます
beforeEach(function() {
    // 毎回インスタンスを生成する
    greeter = new Greeter();
});

// 各メソッドのテストケースを ``describe()`` の中に書きます

// Greeter.hello() のテストケース
describe("hello()", function() {

    // テストパターンごとに ``it()`` の中にテストを書きます
    it("こんにちは", function() {

        // expect(テスト対象メソッド呼び出し).toEqual("期待値") のようにテストを書きます。
        // toEqual() の他に、
        // 正規表現マッチする toMatch(/正規表現/)
        // true であることをテストする toBeTruthy()
        // undefined でないことをテストする toBeDefined()
        // null であることをテストする toBeNull() などがあります。
        expect(greeter.hello()).toEqual("こんにちは");

        // たとえば「~と等しくない」というテストを書く場合は、
        // expect(greeter.hello()).not.toBeEqual("さようなら");
        // のように、 .not. を挟みます
    });
});

// Greeter.goodbye() のテストケース
describe("goodbye()", function() {
    it("こんにちは", function() {
        expect(greeter.goodbye()).toEqual("さようなら");
    });
});

}); ```

  1. GeetingSpecRunner.html などの名前でテストランナーHTMLを作成し、ブラウザで実行(開く)します。
  2. ブラウザに、テスト結果が表示されます。
Clone this wiki locally